lucid -> precise upgrade failed: Resolver failed to calculate the upgrade - dpkg-dev held back

Bug #917173 reported by Jean-Baptiste Lallement on 2012-01-16
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
apt (Debian)
Fix Released
Unknown
apt (Ubuntu)
High
Colin Watson
Lucid
Medium
Colin Watson
Oneiric
Medium
Colin Watson
Precise
High
Colin Watson
release-upgrader-apt (Ubuntu)
Undecided
Unassigned
Lucid
High
Colin Watson
Oneiric
Undecided
Unassigned
Precise
Undecided
Unassigned
release-upgrader-python-apt (Ubuntu)
Undecided
Unassigned
Lucid
High
Colin Watson
Oneiric
Undecided
Unassigned
Precise
Undecided
Unassigned

Bug Description

lucid to precise i386 daily upgrade testing

Upgrade fails with "pkgProblemResolver::Resolve generated breaks, this may be caused by held packages."

From apt.log
Investigating (9) dpkg [ i386 ] < 1.15.5.6ubuntu4.5 -> 1.16.1.2ubuntu5 > ( admin )
Broken dpkg:i386 Breaks on dpkg-dev [ i386 ] < 1.15.5.6ubuntu4.5 -> 1.16.1.2ubuntu5 > ( utils ) (< 1.15.8)
  Considering dpkg-dev:i386 29 as a solution to dpkg:i386 7205
  Upgrading dpkg-dev:i386 due to Breaks field in dpkg:i386
Investigating (9) dpkg-dev [ i386 ] < 1.15.5.6ubuntu4.5 -> 1.16.1.2ubuntu5 > ( utils )
Broken dpkg-dev:i386 Depends on libdpkg-perl [ i386 ] < none -> 1.16.1.2ubuntu5 > ( perl ) (= 1.16.1.2ubuntu5)
  Considering libdpkg-perl:i386 12 as a solution to dpkg-dev:i386 29
  Holding Back dpkg-dev:i386 rather than change libdpkg-perl:i386

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: update-manager 1:0.156
ProcVersionSignature: Ubuntu 3.2.0-8.15-generic 3.2.0
Uname: Linux 3.2.0-8-generic x86_64
ApportVersion: 1.90-0ubuntu2
Architecture: amd64
Date: Mon Jan 16 14:54:05 2012
EcryptfsInUse: Yes
GsettingsChanges:
 com.ubuntu.update-manager first-run false
 com.ubuntu.update-manager launch-time 1325663980
 com.ubuntu.update-manager show-details true
 com.ubuntu.update-manager window-height 671
 com.ubuntu.update-manager window-width 600
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
PackageArchitecture: all
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.utf8
 SHELL=/bin/bash
SourcePackage: update-manager
UpgradeStatus: No upgrade log present (probably fresh install)

Jean-Baptiste Lallement (jibel) wrote :
Changed in update-manager (Ubuntu Precise):
importance: Undecided → High
assignee: nobody → Canonical Foundations Team (canonical-foundations)
Jean-Baptiste Lallement (jibel) wrote :
Jean-Baptiste Lallement (jibel) wrote :
Jean-Baptiste Lallement (jibel) wrote :
tags: added: dist-upgrade i386 lucid2precise qa-daily-testing rls-mgr-p-tracking
removed: amd64
Michael Vogt (mvo) wrote :

It looks like the issue is more:
...
  libperl5.10:i386 Depends on perl-base [ i386 ] < 5.10.1-8ubuntu2.1 -> 5.14.2-6ubuntu1 > ( perl ) (= 5.10.1-8ubuntu2.1) can't be satisfied!
...
Investigating (1) libdpkg-perl [ i386 ] < none -> 1.16.1.2ubuntu5 > ( perl )
Broken libdpkg-perl:i386 Depends on perl [ i386 ] < 5.10.1-8ubuntu2.1 -> 5.14.2-6ubuntu1 > ( perl )
  Considering perl:i386 1472 as a solution to libdpkg-perl:i386 12
  Holding Back libdpkg-perl:i386 rather than change perl:i386

A temporary archive-not-in-sync issue maybe?

Steve Langasek (vorlon) wrote :

Jean-Baptiste, is this bug reproducible with the current precise archive?

Changed in update-manager (Ubuntu Precise):
status: New → Incomplete
Jean-Baptiste Lallement (jibel) wrote :

Yes, it reproduces every day. I'll do a manual upgrade to validate it. Meanwhile, leaving 'incomplete' until manual confirmation.

Jean-Baptiste Lallement (jibel) wrote :

reproduced today. I disabled any proxy, all lucid packages are up to date and it still fail with this error.

Changed in update-manager (Ubuntu Precise):
status: Incomplete → Confirmed
Michael Vogt (mvo) wrote :

From irc:
<jibel> mvo, I think it is related to multiarch but cannot find what's wrong
 mvo, at the top there should be a something like 'installing libc6 as depends of multiarch' but there isn't
<jibel> for some reason installation of libc6 is deferred and breaks the upgrade of libc6-i686
 " libc6-i686:i386 PreDepends on libc6 [ i386 ] < 2.11.1-0ubuntu7.8 -> 2.13-24ubuntu2 > ( libs ) (= 2.11.1-0ubuntu7.8) can't be satisfied!"

Steve Langasek (vorlon) wrote :

The libc6-i686 package is obsoleted post-lucid, and the new libc6 conflicts/replaces/provides it. So I don't think this has anything to do with multiarch itself; there's a circular dependency between libc6, libgcc1, and multiarch-support, but that's been specifically structured to be upgrade-safe...

Colin Watson (cjwatson) wrote :

This only happens with the universe upgrade test. I'm trying to restore the apt-clone locally so that I can investigate this.

Changed in update-manager (Ubuntu Precise):
assignee: Canonical Foundations Team (canonical-foundations) → Colin Watson (cjwatson)
Colin Watson (cjwatson) wrote :

Although I haven't been able to apt-clone this yet due to apt-cacher-ng bizarrely not liking one of the gazillion packages it wants to install, it seems very suspicious to me that libc6:i386 ends up with a score of -17473. My reading of the scoring algorithm is that no package should ever be able to get a score less than -2. I think what we're seeing here is signed short overflow, so apt scores libc6 extremely low when it should be scored extremely high. I strongly suspect that converting the scores from signed short to signed int, although it would use a few more kilobytes of memory, will fix this bug.

Colin Watson (cjwatson) on 2012-01-28
affects: update-manager (Ubuntu Precise) → apt (Ubuntu Precise)
Changed in apt (Ubuntu Precise):
status: Confirmed → Triaged
Colin Watson (cjwatson) on 2012-01-28
Changed in apt (Ubuntu Precise):
status: Triaged → In Progress
Colin Watson (cjwatson) on 2012-01-29
Changed in release-upgrader-apt (Ubuntu Precise):
status: New → Invalid
Changed in release-upgrader-apt (Ubuntu Lucid):
status: New → Triaged
importance: Undecided → High
assignee: nobody → Colin Watson (cjwatson)
Changed in apt (Ubuntu Lucid):
status: New → Triaged
importance: Undecided → High
importance: High → Medium
assignee: nobody → Colin Watson (cjwatson)
Launchpad Janitor (janitor) wrote :
Download full text (8.0 KiB)

This bug was fixed in the package apt - 0.8.16~exp12ubuntu1

---------------
apt (0.8.16~exp12ubuntu1) precise; urgency=low

  [ Michael Vogt ]
  * merge from debian/experimental:
    - new ABI

  [ Steve Langasek ]
  * apt-pkg/algorithms.cc: iterate Breaks the same way as Conflicts, so that
    we resolve virtual package Breaks more effectively. Thanks to Colin
    Watson for the patch. Closes: #657695, LP: #922485.
  * apt-pkg/algorithms.{cc,h}: use an int to represent resolver scores, not
    a signed short, because large upgrades can result in an overflow for
    core packages. Thanks again to Colin Watson. Closes: #657732,
    LP: #917173.
  * Multi-Arch: none build-deps should be DEB_HOST_ARCH, not DEB_BUILD_ARCH.
    Closes: #646288.

apt (0.8.16~exp12) experimental; urgency=low

  [ Michael Vogt ]
  * apt-pkg/deb/dpkgpm.cc:
    - fix segfault on pkg removal

  [ David Kalnischkies ]
  * apt-pkg/cacheiterators.h:
    - return the correct version arch for all+foreign, too
  * apt-pkg/packagemanager.cc:
    - ignore breaks on not-installed versions while searching for
      breakage loops as we don't have to avoid them
  * debian/control:
    - remove APT from the short descriptions as lintian doesn't like it
      and it doesn't transport any information for a reader anyway
    - apply typofixes by Pascal De Vuyst, thanks! (Closes: #652834, #652835)
  * debian/rules:
    - apply patch to enable usage of hardning CPPFLAGS and LDFLAGS by
      Moritz Muehlenhoff, thanks! (Closes: #653504)
  * methods/https.cc:
    - use curls list append instead of appending Range and If-Range by hand
      which generates malformed requests, thanks Mel Collins for the hint!
      (Closes: #646381)
  * test/libapt/run-tests:
    - hurd doesn't have dmesg yet and we don't really need it either,
      so use with $0 a more stable data source for hashsumming

  [ Pino Toscano ]
  * test/libapt/globalerror_test.cc:
    - errno 0 has a different strerror on hurd, so generate the expected
      message dynamically instead of hardcoding 'Success' (Closes: #656530)

apt (0.8.16~exp11) experimental; urgency=low

  [ David Kalnischkies ]
  * apt-pkg/deb/dpkgpm.cc:
    - redirect out/input of dpkg --assert-multi-arch to /dev/null
    - if multi-arch is detected ensure that pkg:all is reported as pkg:all

apt (0.8.16~exp10) experimental; urgency=low

  [ David Kalnischkies ]
  * apt-pkg/depcache.cc:
    - implicit conflicts (for multiarch) are supposed to conflict
      only with real packages, not with virtual providers
  * apt-pkg/pkgcache.cc:
    - ignore implicit conflicts on providers in AllTarget, too
  * apt-pkg/deb/dpkgpm.cc:
    - check if dpkg supports multiarch with --assert-multi-arch
      and if it does be always explicit about the architecture
  * apt-pkg/contrib/fileutl.h:
    - store the offset in the internal fd before calculate size of
      the zlib-handled file to jump back to this place again

  [ Michael Vogt ]
  * apt-pkg/contrib/fileutl.h:
    - fix segfault triggered by the python-apt testsuite

apt (0.8.16~exp9) experimental; urgency=low

  [ Julian Andres Klode ]
  * apt-pkg/cdrom.cc:
    - Accept .bz2, .xz files in addition to .gz fil...

Read more...

Changed in apt (Ubuntu Precise):
status: In Progress → Fix Released
Colin Watson (cjwatson) on 2012-01-30
Changed in release-upgrader-python-apt (Ubuntu Lucid):
assignee: nobody → Colin Watson (cjwatson)
importance: Undecided → High
status: New → Triaged
Changed in release-upgrader-python-apt (Ubuntu Precise):
status: New → Invalid
Changed in release-upgrader-apt (Ubuntu Oneiric):
status: New → Invalid
Changed in release-upgrader-python-apt (Ubuntu Oneiric):
status: New → Invalid
Changed in apt (Ubuntu Oneiric):
assignee: nobody → Colin Watson (cjwatson)
importance: Undecided → Medium
status: New → Triaged

Hello Jean-Baptiste, or anyone else affected,

Accepted release-upgrader-apt into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in release-upgrader-apt (Ubuntu Lucid):
status: Triaged → Fix Committed
tags: added: verification-needed
Changed in release-upgrader-python-apt (Ubuntu Lucid):
status: Triaged → Fix Committed
Martin Pitt (pitti) wrote :

Hello Jean-Baptiste, or anyone else affected,

Accepted release-upgrader-python-apt into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in apt (Debian):
status: Unknown → New
Martin Pitt (pitti) wrote :

Hello Jean-Baptiste, or anyone else affected,

Accepted apt into oneiric-proposed. The package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in apt (Ubuntu Oneiric):
status: Triaged → Fix Committed
Martin Pitt (pitti) wrote :

Hello Jean-Baptiste, or anyone else affected,

Accepted apt into lucid-proposed. The package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in apt (Ubuntu Lucid):
status: Triaged → Fix Committed

I verified that the versions in -proposed fixed the issue.

lucid desktop upgrade results with -proposed enabled on i386 and amd64
https://jenkins.qa.ubuntu.com/view/Precise%20Upgrade%20Testing%20Dashboard/job/precise-upgrade-lucid-desktop/ARCH=i386,LTS=lts,PROFILE=ubuntu,label=upgrade-test/18/

tags: added: verification-done
removed: verification-needed
Martin Pitt (pitti) wrote :

Resetting verification tag for apt itself. This needs to be verified with apt-get dist-upgrade, which would also provide a nice regression test.

tags: added: verification-needed
removed: verification-done
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package release-upgrader-apt - 0.8.16~exp12ubuntu1~upgrader1

---------------
release-upgrader-apt (0.8.16~exp12ubuntu1~upgrader1) lucid-proposed; urgency=low

  * Backport apt libraries from precise to lucid to make multiarch-enabled
    upgrades work.

apt (0.8.16~exp12ubuntu1) precise; urgency=low

  [ Michael Vogt ]
  * merge from debian/experimental:
    - new ABI

  [ Steve Langasek ]
  * apt-pkg/algorithms.cc: iterate Breaks the same way as Conflicts, so that
    we resolve virtual package Breaks more effectively. Thanks to Colin
    Watson for the patch. Closes: #657695, LP: #922485.
  * apt-pkg/algorithms.{cc,h}: use an int to represent resolver scores, not
    a signed short, because large upgrades can result in an overflow for
    core packages. Thanks again to Colin Watson. Closes: #657732,
    LP: #917173.
  * Multi-Arch: none build-deps should be DEB_HOST_ARCH, not DEB_BUILD_ARCH.
    Closes: #646288.
 -- Colin Watson <email address hidden> Mon, 30 Jan 2012 10:21:37 +0000

Changed in release-upgrader-apt (Ubuntu Lucid):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package release-upgrader-python-apt - 0.8.0ubuntu9~upgrader3

---------------
release-upgrader-python-apt (0.8.0ubuntu9~upgrader3) lucid-proposed; urgency=low

  * Rebuild against latest release-upgrader-apt (LP: #917173, #922485).
 -- Colin Watson <email address hidden> Mon, 30 Jan 2012 13:09:09 +0000

Changed in release-upgrader-python-apt (Ubuntu Lucid):
status: Fix Committed → Fix Released

SRU verification for Lucid:
I have reproduced the problem with apt 0.7.25.3ubuntu9.9 in lucid-updates, apt-get dist-upgrade stops on x11-common. Trying to continue the upgrade fails with an error "pkgProblemResolver::Resolve generated breaks"

I have verified that the version of apt 0.7.25.3ubuntu9.10 in -proposed fixes the issue and the system can be upgraded with a dist-upgrade.

Marking as verification-done

tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package apt - 0.7.25.3ubuntu9.10

---------------
apt (0.7.25.3ubuntu9.10) lucid-proposed; urgency=low

  * apt-pkg/algorithms.cc: Iterate Breaks the same way as Conflicts, so that
    we resolve virtual package Breaks more effectively (LP: #922485).
  * apt-pkg/algorithms.{cc,h}: Use an int to represent resolver scores, not
    a signed short, because large upgrades can result in an overflow for
    core packages (LP: #917173).
 -- Colin Watson <email address hidden> Mon, 30 Jan 2012 13:35:04 +0000

Changed in apt (Ubuntu Lucid):
status: Fix Committed → Fix Released
Martin Pitt (pitti) wrote :

Resetting verification tags for oustanding oneiric testing.

tags: added: verification-done-lucid verification-needed
removed: verification-done
pablo (pablomendoza83) on 2012-02-20
Changed in apt (Ubuntu Oneiric):
assignee: Colin Watson (cjwatson) → pablo (pablomendoza83)
status: Fix Committed → Invalid
Colin Watson (cjwatson) on 2012-02-20
Changed in apt (Ubuntu Oneiric):
assignee: pablo (pablomendoza83) → Colin Watson (cjwatson)
status: Invalid → Fix Committed
Changed in apt (Debian):
status: New → Fix Released
Colin Watson (cjwatson) wrote :

Hello Jean-Baptiste, or anyone else affected,

Accepted apt into oneiric-proposed. The package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package apt - 0.8.16~exp5ubuntu13.3

---------------
apt (0.8.16~exp5ubuntu13.3) oneiric-proposed; urgency=low

  [ Jean-Louis Dupond ]
  * Backport fixes from precise verison of apt, to fix multiarch upgrades
    from oneiric.
  * apt-pkg/depcache.cc:
    - prefer native providers over foreigns even if the chain is foreign.
      (LP: #850264)
  * cmdline/apt-get.cc:
    - ignore foreign architectures if we check if a provides has only one
      resolver as it's basically the same for the user, so no need to choose.
  * apt-pkg/deb/deblistparser.cc:
    - M-A: foreign packages provide for other archs, too

  [ Colin Watson ]
  * Include 0.8.16~exp5ubuntu13.1 patches.
  * apt-pkg/algorithms.cc: Iterate Breaks the same way as Conflicts, so that
    we resolve virtual package Breaks more effectively (LP: #922485).
  * apt-pkg/algorithms.{cc,h}: Use an int to represent resolver scores, not
    a signed short, because large upgrades can result in an overflow for
    core packages (LP: #917173).
 -- Jean-Louis Dupond <email address hidden> Tue, 17 Apr 2012 14:43:00 +0200

Changed in apt (Ubuntu Oneiric):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.