OpenLDAP 2.4.31 on FreeBSD 10.0-CURRENT/amd64 broken!

Hartmann, O. ohartman at zedat.fu-berlin.de
Sun May 6 05:09:49 UTC 2012


On 05/05/12 23:56, Andrzej Tobola wrote:
> On Sat, May 05, 2012 at 05:54:50PM +0200, Hartmann, O. wrote:
>> Hello lists.
>>
>> Since Friday, I have on all of our FreeBSD 10.0-CURRENT/amd64 boxes
>> massive trouble with net/openldap24-server (SASL enabled, so it is
>> openldap-sasl-server).
>>
>> Last time OpenLDAP worked was Thursday last week, when obviously a
>> problematic update to the OS was made - it is a wild guess, since I did
>> daily make world and by the end of the day after the last make world
>> things went worse. I'm sorry having no SVN release tag handy.
>>
>> Well, here some facts.
>>
>> 1) The update of net/openldap24-server has been performed earlier this
>> month and has been run successfully (2.4.31).
>>
>> 2) It doesn't matter whether OpenLDAP is compiled with CLANG 3.1 or
>> legacy GCC 4.2.1, compiled with CLANG, slapd(8C)  coredumps immediately,
>> compiled with gcc, it starts, but when slapd(8C) gets accessed, it
>> coredumps immediately. A simple "id ohartmann" is enough.
>>
>> 3) I recompiled OpenLDAP 2.4.31 client and server and it requisites via
>> "portmaster -f net/openldap24-server|client. No effect/success. I also
>> recompiled every port used with OpenLDAP: security/pam_ldap and
>> net/nss_ldap.
>>
>> 4) OpenLDAP server uses DB5 based backend.
>>
>> 5) The very same configuration (copied slap.d folder's .ldif files)
>> works fine on FreeBSD 9.0-STABLE/amd64, even compiled with CLANG. This
>> makes me believe this is a FreeBSD 10.0-CURRENT specific bug.
>>
>> 6) Following is a truss output of the following comand issued:
>>
>> /usr/local/libexec/slapd -d32 -o ldap -g ldap -F
>> /usr/local/etc/openldap/slapd.d :
>>
>> [...]
>> connect(8,{ AF_INET 192.168.0.128:389 },16)      ERR#61 'Connection refused'
>> shutdown(8,SHUT_RDWR)                            ERR#54 'Connection
>> reset by pee
>> r'
>> close(8)                                         = 0 (0x0)
>> clock_gettime(13,{1336231852.000000000 })        = 0 (0x0)
>> getpid()                                         = 84297 (0x14949)
>> sendto(3,"<163>May  5 17:30:52 slapd[84297"...,97,0x0,NULL,0x0) = 97 (0x61)
>> sigprocmask(SIG_SETMASK,SIGHUP|SIGINT|SIGQUIT|SIGILL|SIGTRAP|SIGABRT|SIGEMT|SIGF
>> PE|SIGKILL|SIGBUS|SIGSEGV|SIGSYS|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|
>> SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH
>> |SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0)
>> sigaction(SIGPIPE,{ SIG_DFL SA_RESTART ss_t },{ SIG_IGN 0x0 ss_t }) = 0
>> (0x0)
>> sigprocmask(SIG_SETMASK,0x0,0x0)                 = 0 (0x0)
>> 4fa547ac ldif_read_file: checksum error on
>> "/usr/local/etc/openldap/slapd.d//cn=
>> config/olcDatabase={1}hdb.ldif"
>> 4fa547ac hdb_db_open: database "dc=walstatt,dc=dyndns,dc=org": unclean
>> shutdown
>> detected; attempting recovery.
>> 4fa547ad hdb_db_open: database "cn=accesslog": unclean shutdown
>> detected; attemp
>> ting recovery.
>> 4fa547ad slapd starting
>> SIGNAL 11 (SIGSEGV)
>> setgroups(0x1,0x802c7a000,0x802c7c001,0xffffffff,0x0,0x0) ERR#4
>> 'Interrupted sys
>> tem call'
>> process exit, rval = 0
> 
> In my case sometimes I needed DB repair:
> 
>   DBVER=`ldd /usr/local/libexec/slapd | grep libdb | sed 's/.*libdb-\(.*\).so.0 =.*/\1/'`       # 4.8 5.1
>   /usr/local/bin/sudo -u ${slapd_owner%:*} /usr/local/bin/db_recover-$DBVER -v -h $DATABASEDIR
> 
> after not clean shutdwon.
> 
> -a
>>

Repair already tried - no effect.
Tried starting with a brand new setup with no effect (empty database
folder).

In times using DB < 5, I had lots of problems and broken databases after
unclean shutdowns, but since using DB5, this seems to be gone.

oh


More information about the freebsd-current mailing list