Bug#1122034: Upgrade of several packages is skipped on full-upgrade without reason
Control: tag -1 moreinfo
On Sat, Dec 06, 2025 at 02:39:14AM +0300, Vladimir K wrote:
> Package: apt
> Version: 3.1.12
> Severity: normal
>
> Dear Maintainer, apt skips upgrade of a number of packages, despite them
> being installable
>
> $ sudo apt full-upgrade
> Not upgrading:
> chromium (142.0.7444.175-1 => 143.0.7499.40-1)
> chromium-common (142.0.7444.175-1 => 143.0.7499.40-1)
> chromium-sandbox (142.0.7444.175-1 => 143.0.7499.40-1)
> libc-bin (2.41-12 => 2.42-4)
> libc-dev-bin (2.41-12 => 2.42-4)
> libc6 (2.41-12 => 2.42-4)
> libc6:i386 (2.41-12 => 2.42-4)
> libc6-dbg (2.41-12 => 2.42-4)
> libc6-dev (2.41-12 => 2.42-4)
> locales (2.41-12 => 2.42-4)
> python3-requests-kerberos (0.14.0-4 => 0.14.0-5)
>
> Summary:
> Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 11
>
> Priorities are fine:
>
> $ apt-cache policy libc6 chromium
> libc6:
> Installed: 2.41-12
> Candidate: 2.42-4
> Version table:
> 2.42-4 500
> 500 https://deb.debian.org/debian unstable/main amd64 Packages
> *** 2.41-12 100
> 100 /var/lib/dpkg/status
> chromium:
> Installed: 142.0.7444.175-1
> Candidate: 143.0.7499.40-1
> Version table:
> 143.0.7499.40-1 500
> 500 https://deb.debian.org/debian unstable/main amd64 Packages
> *** 142.0.7444.175-1 100
> 100 /var/lib/dpkg/status
>
> And this worked:
>
> $ sudo apt install --only-upgrade libc6 chromium
> Upgrading:
> chromium (142.0.7444.175-1 => 143.0.7499.40-1)
> chromium-common (142.0.7444.175-1 => 143.0.7499.40-1)
> libc-bin (2.41-12 => 2.42-4)
> libc-dev-bin (2.41-12 => 2.42-4)
> libc6 (2.41-12 => 2.42-4)
> libc6:i386 (2.41-12 => 2.42-4)
> libc6-dbg (2.41-12 => 2.42-4)
> libc6-dev (2.41-12 => 2.42-4)
> locales (2.41-12 => 2.42-4)
>
> Installing dependencies:
> libc-gconv-modules-extra (2.42-4)
This is not providing much information; as there's plenty
of reasons for an upgrade to be held back that can be overwritten
by forcing the update; none of these reasons are surfaced at any
point.
Essentially all upgrade requests are optional; and there are
optional dependencies, and the order of evaluation matters.
For example, there may be a Recommends: libc6 (= 2.14-12)
in some other package. If that Recommends is evaluated before
the request to try to upgrade libc6, the upgrade is skipped.
For safe-upgrade, this is a lot stronger, as all currently
satisfied Recommends are promoted to Depends, so they lose
their optionality. Not only that, a Recommends on say
foo | bar
is filtered to the installed packages only so as to not
switch dependencies.
Upgrading as many packages as possible would have unwanted
side effects like breaking Recommends, or switching dependencies.
If you can still reproduce, please pass
--solver internal -o Dir::Log::Solver=/path/to/afile.edsp.zst
(the --solver internal argument will switch the solver and the
bug may not reproduce locally; however, it will still reproduce
with the dump)
adjusting the path as wanted and attach the produced dump.
Alternatively, you can also pass
-o Dir::Log::Solver=3
and grep stderr for the packages interested and you should see
Install:chromium:amd64=142.0.7444.175-1
Reject:chromium:amd64=143.0.7499.40-1
lines with short reasons.
--
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer i speak de, en
Reply to: