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

Bug #990742 reported by Brian J. Murrell
102
This bug affects 14 people
Affects Status Importance Assigned to Milestone
cyrus-sasl2 (Ubuntu)
Fix Released
High
Unassigned
Precise
Fix Released
High
Unassigned
Quantal
Fix Released
High
Unassigned
openldap (Ubuntu)
Fix Released
High
Unassigned
Quantal
Fix Released
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

Revision history for this message
Brian J. Murrell (brian-interlinx) wrote :
Revision history for this message
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
Revision history for this message
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
Revision history for this message
Launchpad Janitor (janitor) wrote : Re: 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
Revision history for this message
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
Revision history for this message
Adam Gandelman (gandelman-a) wrote :

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

Revision history for this message
Martin Pitt (pitti) wrote : Please test proposed package

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
Revision history for this message
Adam Gandelman (gandelman-a) wrote : Re: slapd fails to upgrade: requires libsasl2-2 (>= 2.1.24) installed

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

Revision history for this message
Brian J. Murrell (brian-interlinx) wrote : Re: [Bug 990742] Re: slapd fails to upgrade: requires libsasl2-2 (>= 2.1.24) installed

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.

Revision history for this message
Jacob Smith (jsmith-argotecinc) wrote : Re: slapd fails to upgrade: requires libsasl2-2 (>= 2.1.24) installed

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?

Revision history for this message
Jacob Smith (jsmith-argotecinc) wrote :

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)

Revision history for this message
Jacob Smith (jsmith-argotecinc) wrote :

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
Revision history for this message
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)
description: updated
description: updated
James Page (james-page)
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
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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