Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.bugs.rc > #375481
| From | Paride Legovini <paride@debian.org> |
|---|---|
| Newsgroups | linux.debian.bugs.rc |
| Subject | Bug#1086701: autopkgtest: Same package version considered downgrade |
| Date | 2024-11-04 18:40 +0100 |
| Message-ID | <JF9dv-6BYD-3@gated-at.bofh.it> (permalink) |
| References | <JF4dQ-6z2C-9@gated-at.bofh.it> <JF4dQ-6z2C-9@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 2024-11-04 13:15, Laurent Bigonville wrote:
> With the unshare backend(?) it seems that rebuilding a package without
> changing the version is causing test to fail becuase it consider the
> same version as a downgrade.
>
> For example:
>
> apt-get source libselinux
> cd libselinux-3.7
> autopkgtest -U -- unshare
>
> The tests fail with something like:
>
> The following NEW packages will be installed:
> libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpkgconf3 libselinux1-dev libsepol-dev libsepol2 pkg-config pkgconf pkgconf-bin
> The following packages will be DOWNGRADED:
> libselinux1
> 0 upgraded, 11 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
> E: Packages were downgraded and -y was used without --allow-downgrades.
> E: Failed to process build dependencies
> build FAIL badpkg
Very interesting bug that brought me deep into some apt internals.
This is not virt-server specific.
When the problem you describe happens we have a version table like this:
libselinux1:
Installed: 3.7-3
Candidate: 3.7-3
Version table:
*** 3.7-3 500
500 http://deb.debian.org/debian trixie/main amd64 Packages
100 /var/lib/dpkg/status
3.7-3 1002
1002 file:/tmp/autopkgtest.MYagqq/binaries Packages
When built binaries are made available to the testbed, autopkgtest does
a `apt-get install --reinstall` for those that are already installed, to
enforce usage of the locally built ones. For some reason this is seen as
a downgrade (despite the identical version), but this is fine, as this
operation is done with APT::Get::force-yes=true (see adt_binaries.py).
*However*, if you check the policy table at this point, it will
identical to the previous one. APT has no way to determine the real
source of an installed package: it only knows about _versions_ of
installed packages. [Note how /var/lib/dpkg/status, which contains info
on the installed packages, has no SHA256 for packages.]
Not knowing better, APT assumes that that an installed package comes
from the *first* APT source that provides that version. In our case, it
assumes that libselinux1 3.7-3 comes from deb.debian.org; this is
visible because the "status" source and deb.debian.org are together in
the version table.
This means: APT still thinks the Priority: 1002 package is different
from the installed one, and that we should install (downgrade to) it
when installing the test deps. The test deps are not installed with
APT::Get::force-yes=true, and we get to the failure you encountered.
Is this a (recent) regression? I don't think so. APT behavior on
comparing packages changed in version 2.7.3 to fix #931175, but that
happened in August 2023.
Now, on how to fix this. I can think of two possibilities:
1. We install the test deps with APT::Get::force-yes=true. What would
happen is that we get multiple "downgrades" of the package, every time
we try to reinstall/upgrade it.
2. We move /etc/apt/sources.list *last* in the list of sources, e.g. to
/etc/apt/sources.list/zz-sources.list. This is more correct, but should
be done carefully. You can play with with workaround by passing:
--setup-commands="mv /etc/apt/sources.list
/etc/apt/sources.list.d/zz-sources.list"
And we need a test case for this, as it's way too easy to regress.
Open question: why APT considers reinstalling the same version a downgrade?
Thanks Julian (Cc:) for explaining me most of APT things above.
--
Paride
Back to linux.debian.bugs.rc | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Bug#1086701: autopkgtest: Same package version considered downgrade Laurent Bigonville <bigon@debian.org> - 2024-11-04 13:20 +0100 Bug#1086701: autopkgtest: Same package version considered downgrade Paride Legovini <paride@debian.org> - 2024-11-04 18:40 +0100 Processed: Re: Bug#1086701: autopkgtest: Same package version considered downgrade "Debian Bug Tracking System" <owner@bugs.debian.org> - 2024-11-05 08:10 +0100 Processed: Re: Bug#1086701: autopkgtest: Same package version considered downgrade "Debian Bug Tracking System" <owner@bugs.debian.org> - 2024-11-07 17:00 +0100 Processed: Re: Bug#1086701: autopkgtest: Same package version considered downgrade "Debian Bug Tracking System" <owner@bugs.debian.org> - 2024-12-15 17:20 +0100
csiph-web