kern/109950: unionfs breaks openldap-server23 with bdb back-end
Sebastian Klemke
packet at adrenochrome.nl
Mon Mar 5 22:40:04 UTC 2007
>Number: 109950
>Category: kern
>Synopsis: unionfs breaks openldap-server23 with bdb back-end
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Mar 05 22:40:03 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: Sebastian Klemke
>Release: FreeBSD 6.2-STABLE i386
>Organization:
>Environment:
System: FreeBSD roterstern.frankenstein13.de 6.2-STABLE FreeBSD 6.2-STABLE #0: Sun Mar 4 16:37:31 CET 2007 root at roterstern.frankenstein13.de:/usr/obj/usr/src/sys/ROTERSTERN i386
src checkout from 2007-03-03, relevant ports:
db44-4.4.20.4
libltdl-1.5.22_2
openldap-client-2.3.34
openldap-server-2.3.34
>Description:
I use unionfs to mount a FreeBSD world "below" (in the sense
of -o below) my jail root directories. This has the negative
side-effect, that the Berkeley DB (db44-4.4.20.4) back-end of
openldap's slapd (openldap-server-2.3.34) breaks. When I try
to populate an empty LDAP tree with some initial object (via
ldapadd), slapd produces the following errors in syslog:
Mar 5 13:02:43 ldap slapd[7443]: bdb(dc=nerdheim,dc=de): fsync Bad file descriptor
Mar 5 13:02:43 ldap slapd[7443]: bdb(dc=nerdheim,dc=de): PANIC: Bad file descriptor
Mar 5 13:02:43 ldap slapd[7443]: bdb(dc=nerdheim,dc=de): PANIC: fatal region error detected; run recovery
Mar 5 13:02:43 ldap last message repeated 2 times
Mar 5 13:02:43 ldap slapd[7443]: bdb(dc=nerdheim,dc=de): PANIC: DB_RUNRECOVERY: Fatal error, run database recovery
Mar 5 13:02:43 ldap slapd[7443]: bdb_db_cache: db_open(objectClass) failed: DB_RUNRECOVERY: Fatal error, run database recovery (-30974)
After this happens, slapd reports internal errors for all LDAP
operations. Restarting rebuilds the database and slapd then
works again, until after the next change is performed. Copying
the jail root directory to a normal ufs filesystem with
soft-updates and noatime and trying to do the same yields no
errors. That's why I think unionfs is the culprit.
The unionfs is mounted with copymode=transparent.
>How-To-Repeat:
run slapd with bdb back-end on a unionfs filesystem
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list