Full_Name: Marco Walther Version: 2.4.11 OS: SunOS 5.11 snv_70b sun4v sparc SUNW,SPARC URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (192.18.43.225)
The problem is in servers/slapd/back-bdb/cache.c and servers/slapd/back-bdb/init.c
The db-4.7.?? moved the lk_handle from the public DB_ENV to a private ENV structure. So it's officially not accessible any more.
I'll include a little diff to show the problem. But I don't think my `quick compile' fix is completely correct.
I'm more interested in the client libraries than the servers right now.
--- init.c.orig Wed Jul 16 22:56:00 2008 +++ init.c Wed Jul 16 23:01:26 2008 @@ -503,9 +503,15 @@ }
if ( !quick ) { -#if DB_VERSION_FULL >= 0x04060012 +#if DB_VERSION_FULL >= 0x04070025 + # XXX mw79288 real hack!! + #include "/export/home/marcow/src/db-4.7.25/build_unix/db_int.h" u_int32_t lid; XLOCK_ID(bdb->bi_dbenv, &lid); + __lock_getlocker(bdb->bi_dbenv->env->lk_handle, lid, 0, &bdb->bi_cache.c_locker); +#elsif DB_VERSION_FULL >= 0x04060012 + u_int32_t lid; + XLOCK_ID(bdb->bi_dbenv, &lid); __lock_getlocker(bdb->bi_dbenv->lk_handle, lid, 0, &bdb->bi_cache.c_locker); #else XLOCK_ID(bdb->bi_dbenv, &bdb->bi_cache.c_locker);