[Date Prev][Date Next] [Chronological] [Thread] [Top]

2.2.3 w/db-4.2.50 fails test000 on SGI only (ITS#2856)



Full_Name: Darin Broady
Version: 2.2.3
OS: Irix 6.5.19m
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (192.146.101.11)


Setup:
--------
Berkeley 4.2.50 -- ../dist/configure --prefix=<>
OL 2.2.3beta    -- ./configure --prefix=<> --enable-crypt --enable-monitor
--enable-hdb
CPPFLAGS & LDFLAGS point to location of db-4.2.50 & openssl-0.9.6k

Test000 fails with the following message in testrun/slapd.1.log:
----------------------------------
bdb_db_open: o=OpenLDAP Project,l=Internet
bdb_db_open: dbenv_open(./testrun/db.1.a)
bdb(o=OpenLDAP Project,l=Internet): write: 0x7fff0a70, 8192: Invalid argument
bdb(o=OpenLDAP Project,l=Internet): PANIC: Invalid argument
bdb_db_open: dbenv_open failed: DB_RUNRECOVERY: Fatal error, run database
recovery (-30978)
backend_startup: bi_db_open(0) failed! (-30978)
slapd shutdown: initiated
====> bdb_cache_release_all
slapd shutdown: freeing system resources.
bdb(o=OpenLDAP Project,l=Internet): txn_checkpoint interface requires an
environment configured for the transaction subsystem
bdb_db_destroy: txn_checkpoint failed: Invalid argument (22)
slapd stopped.
connections_destroy: nothing to destroy.


Seeing the "write: 0x7fff0a70, 8192" message coming from BDB, I went to look
through
that code.  It appears as if BDB tries to do a O_DIRECT write on the file, but
it
errors out with EINVAL.  I think that BDB is not following the rules setup on
Irix
for doing a DIRECT IO operation.  Irix apparently has some stringent
requirements
on the alignment of data for O_DIRECT operations that other operating system do
not have.

This problem does not appear on Solaris.

This problem occur in BDB-4.1.25.

I think that solution would be to have BDB not use O_DIRECT on SGI, but I'm not
entirely sure of the correct way to accomplish that one, nor am I sure that it
is the correct solution.

Does anyone have any insight into this?