Date: Mon, 5 Mar 2007 23:12:40 +0100 (CET) From: Sebastian Klemke <packet@adrenochrome.nl> To: FreeBSD-gnats-submit@FreeBSD.org Cc: packet@adrenochrome.nl Subject: kern/109950: unionfs breaks openldap-server23 with bdb back-end Message-ID: <20070305221240.ECA7C2F65E@roterstern.frankenstein13.de> Resent-Message-ID: <200703052240.l25Me34Y086561@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070305221240.ECA7C2F65E>