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

Bug #1304403 reported by Jean-Baptiste Lallement on 2014-04-08
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
krb5 (Ubuntu)
High
Michael Vogt
Trusty
High
Michael Vogt
ubuntu-release-upgrader (Ubuntu)
High
Unassigned
Trusty
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

Jean-Baptiste Lallement (jibel) wrote :
affects: wayland (Ubuntu) → ubuntu-release-upgrader (Ubuntu)
Jean-Baptiste Lallement (jibel) wrote :
Jean-Baptiste Lallement (jibel) wrote :
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.

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

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
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) on 2014-04-08
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
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
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

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

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)

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

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) on 2014-04-09
Changed in krb5 (Ubuntu Trusty):
assignee: Martin Pitt (pitti) → Michael Vogt (mvo)
status: Triaged → In Progress
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.

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
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.

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.

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  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers