[Bug 322944] [NEW] slapd upgrade fails: chown: cannot access `olcDbDirectory\nolcDbDirectory': No such file or directory

Iain ubuntu at iain.georgeson.me.uk
Thu Jan 29 22:44:22 GMT 2009

Public bug reported:

Binary package hint: slapd

slapd upgrade fails with:

iain at stronginthearm:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Setting up slapd (2.4.11-0ubuntu6.1) ...
  Backing up /etc/ldap/slapd.d/ in /var/backups/slapd-2.4.11-0ubuntu6... done.
chown: cannot access `olcDbDirectory\nolcDbDirectory': No such file or directory
dpkg: error processing slapd (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)

The attempt to parse out the olcDbDirectory in /var/lib/dpkg/info/slapd.postinst:get_directory() fails if there is more than one matching file, which there is on my system - there's an emacs backup file (i.e. olcDatabase={1}hdb.ldif~). Made the following patch:

--- slapd.postinst      2009-01-29 22:32:24.000000000 +0000
+++ /var/lib/dpkg/info/slapd.postinst   2009-01-29 22:37:55.000000000 +0000
@@ -229,7 +229,7 @@
 get_directory() {                                                      # {{{
 # Returns the db directory for a given suffix
        if [ -d "${SLAPD_CONF}" ] && echo `get_suffix` | grep -q "$1" ; then
-               grep "olcDbDirectory:" `grep -l "olcSuffix: $1" ${SLAPD_CONF}/cn\=config/olcDatabase*` | cut -d: -f 2 | sed 's/^  *//g'
+               grep -H "olcDbDirectory:" `grep -l "olcSuffix: $1" ${SLAPD_CONF}/cn\=config/olcDatabase*` | head -1 | cut -d: -f 3 | sed 's/^  *//g'
        elif [ -f "${SLAPD_CONF}" ]; then
                # Extract the directory for the given suffix ($1)
                for f in `get_all_slapd_conf_files`; do

which is more robust in the face of multiple matches. Extra credit is
given for explicitly grepping out junk.

# lsb_release -rd
Description:    Ubuntu 8.10
Release:        8.10

# apt-cache policy slapd
  Installed: 2.4.11-0ubuntu6.1
  Candidate: 2.4.11-0ubuntu6.1
  Version table:
 *** 2.4.11-0ubuntu6.1 0
        500 http://gb.archive.ubuntu.com intrepid-updates/main Packages
        100 /var/lib/dpkg/status
     2.4.11-0ubuntu6 0
        500 http://gb.archive.ubuntu.com intrepid/main Packages

** Affects: openldap (Ubuntu)
     Importance: Undecided
         Status: New

slapd upgrade fails: chown: cannot access `olcDbDirectory\nolcDbDirectory': No such file or directory
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to openldap in ubuntu.

More information about the Ubuntu-server-bugs mailing list