[SRU] slapd fails to upgrade: requires libsasl2-2 (>= 2.1.24) installed

Bug #990742 reported by Brian J. Murrell on 2012-04-28
102
This bug affects 14 people
Affects Status Importance Assigned to Milestone
cyrus-sasl2 (Ubuntu)
High
Unassigned
Precise
High
Unassigned
Quantal
High
Unassigned
openldap (Ubuntu)
High
Unassigned
Quantal
High
Unassigned

Bug Description

I was trying to "apt-get install dpkg" to work around #944452 and got the following while trying to upgrade slapd:

Setting up slapd (2.4.28-1.1ubuntu4) ...
Use of uninitialized value $type in ucfirst at /usr/share/perl5/Debconf/AutoSelect.pm line 35.
  Backing up /etc/ldap/slapd.conf in /var/backups/slapd-2.4.21-0ubuntu5.7... done.
  Moving old database directories to /var/backups:
  Loading from /var/backups/slapd-2.4.21-0ubuntu5.7:
  - directory dc=interlinx,dc=bc,dc=ca... failed.

Loading the database from the LDIF dump failed with the following
error while running slapadd:
    4f9c4903 slap_sasl_init: auxprop add plugin failed
    slapadd: slap_init failed!
dpkg: error processing slapd (--configure):
 subprocess installed post-installation script returned error exit status 1

This looks to be related to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665473 where message #10 (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665473#10) in that bug says:

This looks like a repeat of bug #628237. However, slapd 2.4.28-1.1/amd64
has a dependency on libsasl2-2 (>= 2.1.24), ...

Looking at the package info for slapd:

Package: slapd
Priority: optional
Section: net
Installed-Size: 4064
Maintainer: Ubuntu Developers <email address hidden>
Original-Maintainer: Debian OpenLDAP Maintainers <email address hidden>
Architecture: i386
Source: openldap
Version: 2.4.28-1.1ubuntu4
Replaces: ldap-utils (<< 2.2.23-3), libldap2
Provides: ldap-server, libslapi-2.4-2
Depends: libc6 (>= 2.15), libdb5.1, libldap-2.4-2 (= 2.4.28-1.1ubuntu4), libltdl7 (>= 2.4.2), libodbc1 (>= 2.2.11) | unixodbc (>= 2.2.11), libperl5.14 (>= 5.14.2), libsasl2-2, libslp1, libwrap0 (>= 7.6-4~), coreutils (>= 4.5.1-1), psmisc, perl (>> 5.8.0) | libmime-base64-perl, adduser, lsb-base (>= 3.2-13)

We can see that it's not requiring a newer libsasl2-2.

At this point I did an "apt-get install libsasl2-2" and it installed the new libsasl2-2 and allowed the configuration of slapd to finish.

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: slapd 2.4.28-1.1ubuntu4
ProcVersionSignature: Ubuntu 2.6.32-22.36-generic 2.6.32.11+drm33.2
Uname: Linux 2.6.32-22-generic i686
Architecture: i386
Date: Sat Apr 28 15:56:29 2012
ProcEnviron:
 LANG=en_CA.UTF-8
 SHELL=/bin/bash
SourcePackage: openldap

-- SRU Justification --

[Impact]
slapd's maintainer scripts make use of utilities like slapcat and slapadd which require a running slapd server, however, the relationship between slapd and libsasl2-2 packages do not take into account a binary incompatability introduced with 2.4.28-1.1. As a result, libsasl2-2 is not upgraded until after slapd, slapd fails to start (with error msg cited in the bugs), and maintainer scripts fail during upgrades with a debconf error like: http://paste.ubuntu.com/965636/

[Development Fix]
The issue has been sorted in Debian and in Quantal with the recent merges. A thorough explanation of the fix is available at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628237#163 . The solution is to update cyrus-sasl2 with:
  - Breaks: 'slapd < 2.4.25-4' on libsasl2-2
  - shlib dependency on 2.1.24 for libsasl2-2
Both of which have been applied to packaging in Debian and synced into Ubuntu Quantal. A no-change rebuild of openldap against the new sasl dependency is required as well.

[Stable Fix]
The two one-liners from above should be back-ported from 2.1.25.dfsg1-4 packaging and applied
to cyrus-sasl2 packaging in Precise. A no-change rebuild of openldap against the newly updated dependency is required as well.

[Test Case]
To reproduce, install slapd on a lucid installation, populate a minimal LDAP directory and do-release-upgrade. A script to populate a minimal database can be found at http://paste.ubuntu.com/965633/.

[Regression Potential]
Minimal. Packaging changes ensure proper ordering of upgrades during dist-upgrade and do not touch original source tree.

Related branches

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in openldap (Ubuntu):
status: New → Confirmed
Changed in openldap (Ubuntu):
importance: Undecided → High
Adam Gandelman (gandelman-a) wrote :

Note, the fix for this in Debian came by setting 'Breaks: slapd < 2.4.25-4' on libsasl2-2 in the cyrus-sasl package.

http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=163;filename=cyrus-sasl2_2.1.25.dfsg1-3.1.debdiff;att=1;bug=628237

summary: - does not depend on libsasl2-2 (>= 2.1.24)
+ slapd fails to upgrade: requires libsasl2-2 (>= 2.1.24) installed

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in cyrus-sasl2 (Ubuntu):
status: New → Confirmed
Adam Gandelman (gandelman-a) wrote :

This has been fixed in Debian and Quantal in the most recent sync of cyrus-sasl2 (2.1.25.dfsg1-4)

Changed in cyrus-sasl2 (Ubuntu):
milestone: none → ubuntu-12.10
milestone: ubuntu-12.10 → none
Changed in openldap (Ubuntu):
status: Confirmed → Triaged
Changed in openldap (Ubuntu Precise):
status: New → Triaged
Changed in cyrus-sasl2 (Ubuntu Precise):
status: New → Triaged
Changed in cyrus-sasl2 (Ubuntu Quantal):
status: Confirmed → Fix Released
Changed in openldap (Ubuntu Quantal):
status: Triaged → Fix Released
description: updated
Adam Gandelman (gandelman-a) wrote :

debdiff containing fixes for -proposed, applied to cyrus-sasl2_2.1.25.dfsg1-3

Hello Brian, or anyone else affected,

Accepted cyrus-sasl2 into precise-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 cyrus-sasl2 (Ubuntu Precise):
status: Triaged → Fix Committed
tags: added: verification-needed

debdiff for -proposed, applied to openldap 2.4.28-1.1ubuntu4 for a no change rebuild against the recently uploaded libsasl2-2

On 12-05-04 12:11 AM, Martin Pitt wrote:
> Hello Brian, or anyone else affected,
>
> Accepted cyrus-sasl2 into precise-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!

I won't be able to test. I don't have anything to test on. I fixed my
problem locally, when it broke, as I had a "half-upgraded" main server.
 As you can imagine, I cannot leave a main server in a half-upgraded
state until all of the SRU-backporting red tape can be cut through, so I
went ahead and fixed it myself.

Perhaps somebody else who is experiencing this bug and is on this ticket
was able to leave there system in a half upgraded state.

I have my server in that state now unfortunately so I should be able to test.

How would I tested proposed while trying to do-release-upgrade?

I (mostly) figured out how to do-release-upgrade using proposed repo with some help from the Ubuntu-HA group.

However I believe proposed is missing the second fix needed - the no change rebuild of openldap?

Still getting errors:

Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'slapd'
dpkg: dependency problems prevent configuration of slapd:
 slapd depends on libldap-2.4-2 (= 2.4.21-0ubuntu5.7); however:
  Version of libldap-2.4-2 on system is 2.4.28-1.1ubuntu4.
 slapd depends on libperl5.10 (>= 5.10.1); however:
  Package libperl5.10 is not installed.
 libsasl2-2 (2.1.25.dfsg1-3ubuntu0.1) breaks slapd (<= 2.4.25-3) and is installed.
  Version of slapd to be configured is 2.4.21-0ubuntu5.7.
dpkg: error processing slapd (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
      Errors were encountered while processing:
 slapd
E: Sub-process /usr/bin/dpkg returned an error code (1)

I was finally able to get the half upgraded system fixed using the proposed package.

After that was running for a bit I went ahead and upgraded another server in my cluster running the same services.
I used the proposed libsasl2-2 package and the upgrade completed start to finish without a hiccup.

So on 2 servers using the proposed packaged solved the issue without any side affects.

Thanks!

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

This bug was fixed in the package cyrus-sasl2 - 2.1.25.dfsg1-3ubuntu0.1

---------------
cyrus-sasl2 (2.1.25.dfsg1-3ubuntu0.1) precise-proposed; urgency=low

  * Fix ABI incompatability during slapd upgrades (LP: #990742):
    - debian/control: Set Breaks: 'slapd < 2.4.25-4' on libsasl2-2.
    - debian/rules: Introduce shlib dependency on 2.1.24 for libsasl2-2.
 -- Adam Gandelman <email address hidden> Thu, 03 May 2012 12:39:35 -0700

Changed in cyrus-sasl2 (Ubuntu Precise):
status: Fix Committed → Fix Released
Bryce Harrington (bryce) on 2012-05-17
description: updated
description: updated
James Page (james-page) on 2012-06-09
Changed in openldap (Ubuntu Precise):
milestone: none → ubuntu-12.04.1
Changed in cyrus-sasl2 (Ubuntu Precise):
milestone: none → ubuntu-12.04.1
Changed in openldap (Ubuntu Precise):
importance: Undecided → High
Changed in cyrus-sasl2 (Ubuntu Precise):
importance: Undecided → High
Changed in cyrus-sasl2 (Ubuntu Quantal):
importance: Undecided → High
summary: - slapd fails to upgrade: requires libsasl2-2 (>= 2.1.24) installed
+ [SRU] slapd fails to upgrade: requires libsasl2-2 (>= 2.1.24) installed
Changed in openldap (Ubuntu Precise):
assignee: nobody → Adam Gandelman (gandelman-a)
status: Triaged → In Progress
James Page (james-page) wrote :

After discussion with Adam on IRC we decided the rebuild of openldap is not really required to resolve this issue.

Changed in openldap (Ubuntu Precise):
status: In Progress → Invalid
no longer affects: openldap (Ubuntu Precise)
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers