← Back to team overview

touch-packages team mailing list archive

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

 

Still encountered in upgrade to 14.04, due to a few cases of a missing
-h parameter to grep when finding the value of olcDbDirectory. In my
case the suffix is stored in two backends, one of them on disk, causing
a grep with more than one file on the command line, and thus the result
of grep beeing prefixed with "<filename>:", which again causes "| cut
-d: -f 2" to return "olcDbDirectory" instead of "/var/lib/ldap".

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openldap in Ubuntu.
https://bugs.launchpad.net/bugs/322944

Title:
  slapd upgrade fails: chown: cannot access
  `olcDbDirectory\nolcDbDirectory': No such file or directory

Status in “openldap” package in Ubuntu:
  Triaged

Bug description:
  Binary package hint: slapd

  slapd upgrade fails with:

  iain@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:
   slapd
  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
  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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openldap/+bug/322944/+subscriptions