[MDEV-11355] Debian dist-upgrade test does not work when new dependencies are introduced Created: 2016-11-25  Updated: 2021-01-16

Status: Stalled
Project: MariaDB Server
Component/s: Platform Debian, Tests
Affects Version/s: N/A
Fix Version/s: N/A

Type: Bug Priority: Minor
Reporter: Elena Stepanova Assignee: Elena Stepanova
Resolution: Unresolved Votes: 0
Labels: None


 Description   

In order to keep dist-upgrade limited to MariaDB only, to avoid lengthy system-wide upgrades, after initial installation the test removes from sources.list everything, except for the local repo. Normally it works fine, because a previous minor version has already been installed. So, it also serves as an additional check that no new dependencies have been introduced, because normally a minor upgrade should not bring any.

But pre-GA versions are allowed to have new dependencies, e.g. current 10.2.3 wants libnuma1, which cannot be installed without default repos, so the test fails.

https://internal.askmonty.org/buildbot/builders/kvm-deb-jessie-amd64/builds/1394/steps/test_3/logs/stdio

Calculating upgrade... Done
The following NEW packages will be installed:
  libmariadb3
The following packages will be upgraded:
  libmariadbclient18 libmysqlclient18 mariadb-client-10.2
  mariadb-client-core-10.2 mariadb-common mysql-common
6 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.

Ideally, it would be good to find a smarter way to limit dist-upgrade than to remove all repos from the list. Pinning repos with low priority isn't simple because we don't know in advance which exact repos are present on the list, so it might require some tricky parsing. It should be doable though if there is no other way.



 Comments   
Comment by Elena Stepanova [ 2016-11-25 ]

As a quick workaround, I've changed dist-upgrade to minor upgrade (install current packages over the last release of the same major version). Since it does not involve system upgrade, there is no need to disable default repos.

Still, it would be good to have dist-upgrade among tests, because sometimes it behaves differently from install. I'll keep it open until we have a good solution for it.

Comment by Daniel Bartholomew [ 2016-11-28 ]

I can install libnuma1 on whatever VMs it is needed on.

Comment by Elena Stepanova [ 2016-11-28 ]

I understand, but I also want to find a general solution for the problem. Running dist-upgrade without default repos is not the right thing to do, it was done this way because I didn't know any better (and still don't).

Comment by Elena Stepanova [ 2016-12-01 ]

Thinking about it, maybe it's actually a good thing that the test is run without repos. We just shouldn't run it for pre-RC versions.
This way we can timely detect if our GA packages suddenly get a new dependency (which they shouldn't normally have).

So, the plan is, to have both

  • the minor upgrade test (apt-get install mariadb-server X.Y.Z+1 over X.Y.Z, which would run for all versions;
  • the dist-upgrade test apt-get dist-upgrade over X.Y.Z with the repo pointing at X.Y.Z+1, which would run for GA+ or RC+ versions, and only for main trees.

Unfortunately, buildbot does not know which are GA and which are not, so it will have to be configured manually, but new major releases don't happen so often, so it's not a big problem.

Thus, there should be no need to pre-install libnuma1. The minor upgrade test runs with default repos enabled, so it should be able to pull the library as a dependency. When the release approaches GA, the previously released version should already have all dependencies, so they will be pulled when we install X.Y.Z (it happens while default repos are still enabled). We disable the repos after that, but it shouldn't matter, because there must be no new dependencies for X.Y.Z+1.

Comment by Elena Stepanova [ 2021-01-16 ]

There is now a variant of minor-upgrade test "deps" (stands for dependencies) which run the upgrade with default repos disabled, to ensure that no dependencies are introduced in a post-RC release.
It could be changed to run dist-upgrade on Debians.
However, given that we are planning to switch to the new buildbot, I'm not sure it is worth doing now. Decreasing priority (and will probably close it as "won't do" when/if we really switch to the new buildbot).

Generated at Thu Feb 08 07:49:19 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.