Precise to Trusty - all of main - fails: Broken transition from libkadm5srv-mit8 to libkadm5srv-mit9

Bug #1304403 reported by Jean-Baptiste Lallement
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
krb5 (Ubuntu)
Fix Released
High
Michael Vogt
Trusty
Fix Released
High
Michael Vogt
ubuntu-release-upgrader (Ubuntu)
Won't Fix
High
Unassigned
Trusty
Won't Fix
High
Unassigned

Bug Description

Precise to Trusty upgrade + all of main failure:

2014-04-08 12:58:48,335 DEBUG blacklist expr '^postgresql-.*[0-9]\.[0-9].*' matches 'postgresql-server-dev-9.1'
2014-04-08 12:58:48,335 DEBUG The package 'postgresql-server-dev-9.1' is marked for removal but it's in the removal blacklist
2014-04-08 12:58:48,357 ERROR Dist-upgrade failed: 'The package 'postgresql-server-dev-9.1' is marked for removal but it is in the removal blacklist.'
2014-04-08 12:58:48,358 DEBUG abort called

REPRODUCER:
 * Start a precise schroot
 * apt-get install krb5-multidev
 * Switch apt sources to trusty
 * apt-get update
 * apt-get dist-upgrade → This will remove krb5-multidev instead of upgrading

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
affects: wayland (Ubuntu) → ubuntu-release-upgrader (Ubuntu)
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
Revision history for this message
Martin Pitt (pitti) wrote :

apt.log says:

Investigating (2) postgresql-server-dev-9.1 [ amd64 ] < 9.1.13-0ubuntu0.12.04 > ( libdevel )
Broken postgresql-server-dev-9.1:amd64 Depends on libpq-dev [ amd64 ] < 9.1.13-0ubuntu0.12.04 -> 9.3.4-1 > ( libdevel ) (>= 9.1~)
  Considering libpq-dev:amd64 8 as a solution to postgresql-server-dev-9.1:amd64 -1
  Removing postgresql-server-dev-9.1:amd64 rather than change libpq-dev:amd64

That doesn't tell me much yet, I'll try to reproduce in a schroot.

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

The broken path is :

Broken libkdb5-7:amd64 Breaks on libkadm5srv-mit8 [ amd64 ] < 1.10+dfsg~beta1-2ubuntu0.3 > ( libs ) (< 1.11+dfsg~)
  Considering libkadm5srv-mit8:amd64 1 as a solution to libkdb5-7:amd64 0
  Holding Back libkdb5-7:amd64 rather than change libkadm5srv-mit8:amd64
...
Broken libkadm5srv-mit9:amd64 Depends on libkdb5-7 [ amd64 ] < none -> 1.12+dfsg-2ubuntu2 > ( libs )
  Considering libkdb5-7:amd64 0 as a solution to libkadm5srv-mit9:amd64 2
  Holding Back libkadm5srv-mit9:amd64 rather than change libkdb5-7:amd64
...
Broken krb5-multidev:amd64 Depends on libkadm5srv-mit9 [ amd64 ] < none -> 1.12+dfsg-2ubuntu2 > ( libs ) (= 1.12+dfsg-2ubuntu2)
  Considering libkadm5srv-mit9:amd64 2 as a solution to krb5-multidev:amd64 8
  Removing krb5-multidev:amd64 rather than change libkadm5srv-mit9:amd64
...
Broken libpq-dev:amd64 Depends on krb5-multidev [ amd64 ] < 1.10+dfsg~beta1-2ubuntu0.3 -> 1.12+dfsg-2ubuntu2 > ( libdevel )
  Considering krb5-multidev:amd64 8 as a solution to libpq-dev:amd64 7
  Removing libpq-dev:amd64 rather than change krb5-multidev:amd64
...
Broken postgresql-server-dev-9.1:amd64 Depends on libpq-dev [ amd64 ] < 9.1.13-0ubuntu0.12.04 -> 9.3.4-1 > ( libdevel ) (>= 9.1~)
  Considering libpq-dev:amd64 8 as a solution to postgresql-server-dev-9.1:amd64 -1
  Removing postgresql-server-dev-9.1:amd64 rather than change libpq-dev:amd64

Revision history for this message
Martin Pitt (pitti) wrote :

This log, taken from a manual dist-upgrade in a precise schroot with postgresql-server-dev-9.1 installed, has some more info:

Investigating (0) libkdb5-7 [ amd64 ] < none -> 1.12+dfsg-2ubuntu2 > ( libs )
Broken libkdb5-7:amd64 Breaks on libkadm5srv-mit8 [ amd64 ] < 1.10+dfsg~beta1-2ubuntu0.3 > ( libs ) (< 1.11+dfsg~)
  Considering libkadm5srv-mit8:amd64 1 as a solution to libkdb5-7:amd64 0
  Holding Back libkdb5-7:amd64 rather than change libkadm5srv-mit8:amd64
Investigating (1) libkadm5srv-mit9 [ amd64 ] < none -> 1.12+dfsg-2ubuntu2 > ( libs )
Broken libkadm5srv-mit9:amd64 Depends on libkdb5-7 [ amd64 ] < none -> 1.12+dfsg-2ubuntu2 > ( libs )
  Considering libkdb5-7:amd64 0 as a solution to libkadm5srv-mit9:amd64 2
  Holding Back libkadm5srv-mit9:amd64 rather than change libkdb5-7:amd64
Investigating (2) krb5-multidev [ amd64 ] < 1.10+dfsg~beta1-2ubuntu0.3 -> 1.12+dfsg-2ubuntu2 > ( libdevel )
Broken krb5-multidev:amd64 Depends on libkadm5srv-mit9 [ amd64 ] < none -> 1.12+dfsg-2ubuntu2 > ( libs ) (= 1.12+dfsg-2ubuntu2)
  Considering libkadm5srv-mit9:amd64 2 as a solution to krb5-multidev:amd64 4
  Removing krb5-multidev:amd64 rather than change libkadm5srv-mit9:amd64
Investigating (2) libpq-dev [ amd64 ] < 9.1.13-0ubuntu0.12.04 -> 9.3.4-1 > ( libdevel )
Broken libpq-dev:amd64 Depends on krb5-multidev [ amd64 ] < 1.10+dfsg~beta1-2ubuntu0.3 -> 1.12+dfsg-2ubuntu2 > ( libdevel )
  Considering krb5-multidev:amd64 4 as a solution to libpq-dev:amd64 2
  Removing libpq-dev:amd64 rather than change krb5-multidev:amd64
Investigating (2) libkrb5-dev [ amd64 ] < 1.10+dfsg~beta1-2ubuntu0.3 -> 1.12+dfsg-2ubuntu2 > ( libdevel )
Broken libkrb5-dev:amd64 Depends on krb5-multidev [ amd64 ] < 1.10+dfsg~beta1-2ubuntu0.3 -> 1.12+dfsg-2ubuntu2 > ( libdevel ) (= 1.12+dfsg-2ubuntu2)
  Considering krb5-multidev:amd64 4 as a solution to libkrb5-dev:amd64 -1
  Removing libkrb5-dev:amd64 rather than change krb5-multidev:amd64
Investigating (2) postgresql-server-dev-9.1 [ amd64 ] < 9.1.13-0ubuntu0.12.04 > ( libdevel )
Broken postgresql-server-dev-9.1:amd64 Depends on libpq-dev [ amd64 ] < 9.1.13-0ubuntu0.12.04 -> 9.3.4-1 > ( libdevel ) (>= 9.1~)
  Considering libpq-dev:amd64 4 as a solution to postgresql-server-dev-9.1:amd64 -1
  Removing postgresql-server-dev-9.1:amd64 rather than change libpq-dev:amd64
Done
The following packages will be REMOVED:
  krb5-multidev libkrb5-dev libpq-dev postgresql-server-dev-9.1

summary: - Precise to Trusty - all of main - fails: The package 'postgresql-server-
- dev-9.1' is marked for removal but it's in the removal blacklist
+ Precise to Trusty - all of main - fails: Broken transition from
+ libkadm5srv-mit8 to libkadm5srv-mit9
Revision history for this message
Martin Pitt (pitti) wrote :

Marking as high as it breaks the upgrade. There are two options:

 * -server-dev-9.1 isn't important to keep after upgrading, so we could adjust blacklist regexp to not cover -server-dev.
 * We resolve the krb-dev transition bug that keeps it from updating (might turn out to be tricky). That aspect would have "low" priority.

Changed in ubuntu-release-upgrader (Ubuntu):
importance: Undecided → High
status: New → Confirmed
Martin Pitt (pitti)
description: updated
Changed in krb5 (Ubuntu Trusty):
status: New → Triaged
importance: Undecided → High
Changed in ubuntu-release-upgrader (Ubuntu Trusty):
status: Confirmed → Won't Fix
Changed in krb5 (Ubuntu Trusty):
assignee: nobody → Martin Pitt (pitti)
milestone: none → ubuntu-14.04
Revision history for this message
Martin Pitt (pitti) wrote :

Trivial fix uploaded. I tested this with a local apt-ftparchive, and it succeeds now. libkadm5srv-mit8 is now correctly removed, and the rest upgraded.

Changed in krb5 (Ubuntu Trusty):
assignee: Martin Pitt (pitti) → nobody
status: Triaged → Fix Committed
Changed in ubuntu-release-upgrader (Ubuntu):
status: Confirmed → Won't Fix
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package krb5 - 1.12+dfsg-2ubuntu3

---------------
krb5 (1.12+dfsg-2ubuntu3) trusty; urgency=medium

  * Add missing versioned Replaces: libkadm5srv-mit8 to the libkdb5-7 package.
    Fixes upgrades from trusty. (LP: #1304403)
 -- Martin Pitt <email address hidden> Tue, 08 Apr 2014 18:04:14 +0200

Changed in krb5 (Ubuntu Trusty):
status: Fix Committed → Fix Released
Revision history for this message
Sam Hartman (hartmans) wrote : Re: [Bug 1304403] Re: Precise to Trusty - all of main - fails: Broken transition from libkadm5srv-mit8 to libkadm5srv-mit9

Not criticising here, but asking.
At a level deeper than "it causes apt to work correctly," why is adding
replaces a reasonable fix?
Nothing in libkdb5-7 actually replases libkadm5-mit8

Revision history for this message
Martin Pitt (pitti) wrote :

Hey Sam,

> At a level deeper than "it causes apt to work correctly," why is adding replaces a reasonable fix?

It indeed does not actually replace any files. This is purely to nudge apt into doing the upgrade to libkadm5srv-mit9, as otherwise the Breaks causes it to hold back half of the stack and remove krb5-multidev. So yes, the "missing Replaces" was perhaps misleading. We'll drop that change after trusty's release again, so it's only a temporary delta.

Do you see a better way to do that? This is the least intrusive and "not particularly wrong" change that I saw to fix this.

Changed in krb5 (Ubuntu Trusty):
assignee: nobody → Martin Pitt (pitti)
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

I'm reopening this report, it is still an issue with krb5 1.12+dfsg-2ubuntu3

Changed in krb5 (Ubuntu Trusty):
status: Fix Released → Triaged
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

New apt.log for P->T upgrade
See also bug 1304702 for an upgrade with the same failure from S to T

Michael Vogt (mvo)
Changed in krb5 (Ubuntu Trusty):
assignee: Martin Pitt (pitti) → Michael Vogt (mvo)
status: Triaged → In Progress
Revision history for this message
Michael Vogt (mvo) wrote :

I uploaded a workaround with a transitional package. I also looked into what went wrong in the resolver. Here is what happend:
- pkgDistUpgrade goes over the installed package and mark them all for upgrade
- pkg libkadm5srv-mit9 gets installed as a dependency of krb5-multidev and causes the removal of libkadm5srv-mit8
- pkgDistUpgrade arrives at libkadm5srv-mit8 and marks it for upgrade which causes a MarkKeep() because there is no upradable version

The last step is wrong in libapt, I will look into creating a testcase/fix for this.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package krb5 - 1.12+dfsg-2ubuntu4

---------------
krb5 (1.12+dfsg-2ubuntu4) trusty; urgency=low

  * Add transitional libkadm5srv-mit8 package to help libapt
    calculating the upgrade (LP: #1304403) to trusty.
    This transitional package can be dropped once trusty is
    released.
 -- Michael Vogt <email address hidden> Wed, 09 Apr 2014 11:11:43 +0200

Changed in krb5 (Ubuntu Trusty):
status: In Progress → Fix Released
Revision history for this message
Michael Vogt (mvo) wrote :
Revision history for this message
Sam Hartman (hartmans) wrote :

>>>>> "Martin" == Martin Pitt <email address hidden> writes:

No complains at all.
I was just hoping to learn from you guys.
I actually probably want this delta for wheezy->jessie.

Revision history for this message
Michael Vogt (mvo) wrote :

Hey Sam, thanks for your interest in this and for bringing the fix to debian. The git commit in #16 should have some good overview what goes wong in the libapt resolver. But for wheezy->jessie its probably still good to have the workaround.

Revision history for this message
Andreas Weller (weller-andreas-weller) wrote :

It seems the bug still persists: Just upgraded to Trusty. GUI upgrade crashed...

This is my console output when trying aptitude safe-upgrade:

dpkg: error processing archive /var/cache/apt/archives/libkadm5srv-mit8_1.12+dfsg-2ubuntu4_all.deb (--unpack):
 libkadm5srv-mit8:all 1.12+dfsg-2ubuntu4 (Multi-Arch: no) is not co-installable with libkadm5srv-mit8 which has multiple installed instances
Errors were encountered while processing:
 /var/cache/apt/archives/libkadm5srv-mit8_1.12+dfsg-2ubuntu4_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install. Trying to recover:
dpkg: dependency problems prevent configuration of libkadm5srv-mit8:amd64:
 libkdb5-7:amd64 (1.12+dfsg-2ubuntu4) breaks libkadm5srv-mit8 (<< 1.11+dfsg~) and is installed.
  Version of libkadm5srv-mit8:amd64 to be configured is 1.10.1+dfsg-6.1ubuntu1.

dpkg: error processing package libkadm5srv-mit8:amd64 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libkadm5srv-mit8:amd64

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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