#1122034 Upgrade of several packages is skipped on full-upgrade without reason

Package:
apt
Source:
apt
Description:
commandline package manager
Submitter:
Vladimir K
Date:
2025-12-08 14:45:02 UTC
Severity:
normal
Tags:
#1122034#5
Date:
2025-12-05 23:39:14 UTC
From:
To:
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)

    Summary:
      Upgrading: 9, Installing: 1, Removing: 0, Not Upgrading: 2
      Download size: 116 MB / 120 MB
      Freed space: 13,6 MB

#1122034#10
Date:
2025-12-06 16:01:30 UTC
From:
To:
Control: tag -1 moreinfo
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

#1122034#17
Date:
2025-12-08 07:04:44 UTC
From:
To:
With internal solver all packages are selected for upgrade normally.

And this does nothing for 3.0 solver.

All my sid hosts are now rolled past the problematic state, it might be hard to downgrade libc6 back several versions to 2.41.-12, and downgrading chromium alone does not trigger the bug.

#1122034#22
Date:
2025-12-08 08:55:58 UTC
From:
To:
That's interesting to note.

Sortry Debug::APT::Solver=3

#1122034#27
Date:
2025-12-08 14:41:58 UTC
From:
To:
I doubt I'll return to the same reproducible state with libc6 (too may removals required on downgrade as of today), but I'll be on the lookout for similar situations.