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

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



> -----Original Message-----
> From: owner-openldap-bugs@OpenLDAP.org
> [mailto:owner-openldap-bugs@OpenLDAP.org]On Behalf Of dbroady@lexmark.com

> 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?

Sounds like a bug in BDB that should be reported to SleepyCat. According to
the SleepyCat documentation, DIRECT IO is not used by default, you're
supposed to set the DB_DIRECT_DB environment flag to enable it. OpenLDAP does
not enable this flag by default.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support