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