[Pkg-openldap-devel] Bug#504438: slapd: Upgrade fails when there are multiple BDB backends

John Pearson gtag-johnp at huiac.com
Mon Nov 3 22:32:23 UTC 2008


Package: slapd
Version: 2.4.11-1
Severity: important


I have multiple BDB backend directories configured in my slapd.conf;
the upgrade from etch fails when attempting to load the second directory
from the backup made by the postinst script, with the message

>  Directory /var/lib/ldap-na for dc=na,dc=gtagalenco,dc=com,dc=au not empty, aborting.

This appears to be because when the first directory is reloaded slapadd is 
run, and it seems that a DB_CONFIG file is created in each of the configured
BDB directories at that time.

You can see this in this output of a modified copy of postinst, which shows
the content of the second directory before and after the first directory is
reloaded:
> # dpkg --pending --configure
> Setting up slapd (2.4.11-1) ...
>   Backing up /etc/ldap/slapd.conf in /var/backups/slapd-2.3.30-5+etch2... done.
>   Upgrading BDB 'checkpoint' options... .
>   Moving old database directories to /var/backups:
>   - directory dc=localnet... done.
>   - directory dc=na,dc=gtagalenco,dc=com,dc=au... done.
>   - directory dc=vilisbakery,dc=com,dc=au... done.
>   Loading from /var/backups/slapd-2.3.30-5+etch2:
>   - directory dc=localnet... About to run slapadd for /var/lib/ldap; content of /var/lib/ldap-na:
> total 8
> drwxr-xr-x 72 root     root     4096 2008-11-04 07:45 ..
> drwx------  2 openldap openldap 4096 2008-11-04 08:33 .
> Just ran slapadd for /var/lib/ldap; content of /var/lib/ldap-na:
> total 12
> drwxr-xr-x 72 root     root     4096 2008-11-04 07:45 ..
> -rw-r--r--  1 root     root       96 2008-11-04 08:33 DB_CONFIG
> drwx------  2 openldap openldap 4096 2008-11-04 08:33 .
> done.
>   - chowning database directory (openldap:openldap)... done
>   Directory /var/lib/ldap-na for dc=na,dc=gtagalenco,dc=com,dc=au not empty, aborting.
> dpkg: error processing slapd (--configure):
>  subprocess post-installation script returned error exit status 1
> Errors were encountered while processing:
>  slapd
> 

The check that the database directory is empty is in the load_database
shell function, which is called once for each database directory before
the directory is loaded from the backup.  I suggest that you move this check
to the shell function move_old_database_away, which is responsible for 
actually emptying the directory.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing-proposed-updates
  APT policy: (500, 'testing-proposed-updates'), (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.27.1-0huiac (SMP w/2 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages slapd depends on:
ii  adduser                  3.110           add and remove users and groups
ii  coreutils                6.10-6          The GNU core utilities
ii  debconf [debconf-2.0]    1.5.22          Debian configuration management sy
ii  libc6                    2.7-15          GNU C Library: Shared libraries
ii  libdb4.2                 4.2.52+dfsg-5   Berkeley v4.2 Database Libraries [
ii  libgnutls26              2.4.2-1         the GNU TLS library - runtime libr
ii  libldap-2.4-2            2.4.11-1        OpenLDAP libraries
ii  libltdl3                 1.5.26-4        A system independent dlopen wrappe
ii  libperl5.10              5.10.0-16       Shared Perl library
ii  libsasl2-2               2.1.22.dfsg1-23 Cyrus SASL - authentication abstra
ii  libslp1                  1.2.1-7.4       OpenSLP libraries
ii  libwrap0                 7.6.q-16        Wietse Venema's TCP wrappers libra
ii  perl [libmime-base64-per 5.10.0-16       Larry Wall's Practical Extraction 
ii  psmisc                   22.6-1          Utilities that use the proc filesy
ii  unixodbc                 2.2.11-16       ODBC tools libraries

Versions of packages slapd recommends:
ii  libsasl2-modules         2.1.22.dfsg1-23 Cyrus SASL - pluggable authenticat

Versions of packages slapd suggests:
ii  ldap-utils                    2.4.11-1   OpenLDAP utilities

-- debconf information:
* slapd/password2: (password omitted)
  slapd/internal/adminpw: (password omitted)
* slapd/password1: (password omitted)
  slapd/tlsciphersuite:
  slapd/fix_directory: true
  shared/organization: localnet
  slapd/upgrade_slapcat_failure:
  slapd/backend: BDB
  slapd/allow_ldap_v2: false
  slapd/no_configuration: false
  slapd/move_old_database: true
  slapd/suffix_change: false
  slapd/slave_databases_require_updateref:
  slapd/dump_database_destdir: /var/backups/slapd-VERSION
  slapd/autoconf_modules: true
  slapd/domain: localnet
  slapd/password_mismatch:
  slapd/invalid_config: true
  slapd/slurpd_obsolete:
  slapd/upgrade_slapadd_failure:
  slapd/dump_database: when needed
  slapd/migrate_ldbm_to_bdb: false
  slapd/purge_database: false





More information about the Pkg-openldap-devel mailing list