Package: libdb4.4 Version: 4.4.20-2 Severity: important
I just upgraded three systems and now Berkeley Database application will only run when using tls libraries. When compiling it statically, with a 2.4 kernel, or specifying to use 2.4 libaries it fails to create a database environment. I wrote a little program to demonstrate this. It takes the argument of an empty directory. I jumped a few libdb revisions when upgrading, so I don't know what revision broke it. SubSpace:~/programming/c/pam_module/firewall/test$ LD_ASSUME_KERNEL=2.4 ./env_open db_dir creating environment verbose DB_VERB_DEADLOCK verbose DB_VERB_RECOVERY verbose DB_VERB_REGISTER verbose DB_VERB_REPLICATION verbose DB_VERB_WAITSFOR unable to initialize mutex: Function not implemented PANIC: Function not implemented unable to join the environment Error opening environment: DB_RUNRECOVERY: Fatal error, run database recovery SubSpace:~/programming/c/pam_module/firewall/test$ ls db_dir SubSpace:~/programming/c/pam_module/firewall/test$ ./env_open db_dir creating environment verbose DB_VERB_DEADLOCK verbose DB_VERB_RECOVERY verbose DB_VERB_REGISTER verbose DB_VERB_REPLICATION verbose DB_VERB_WAITSFOR opening environment closing environment SubSpace:~/programming/c/pam_module/firewall/test$ ldd env_open linux-gate.so.1 => (0xffffe000) libdb-4.4.so => /usr/lib/libdb-4.4.so (0xb7deb000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7dd8000) libc.so.6 => /lib/tls/libc.so.6 (0xb7ca0000) /lib/ld-linux.so.2 (0xb7ef9000) SubSpace:~/programming/c/pam_module/firewall/test$ LD_ASSUME_KERNEL=2.4 ldd env_open linux-gate.so.1 => (0xffffe000) libdb-4.4.so => /usr/lib/libdb-4.4.so (0xb7e8b000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7e37000) libc.so.6 => /lib/libc.so.6 (0xb7d13000) /lib/ld-linux.so.2 (0xb7f99000) Makefile ---------------------------------------- CFLAGS=-g -Wall LDFLAGS=-ldb -lpthread env_open: ---------------------------------------- env_open.c ---------------------------------------- #include <db.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> void error_exit(const char *msg, int result) { if(!result) { printf("%s\n", msg); return; } fprintf(stderr, "Error %s: %s\n", msg, db_strerror(result)); exit(1); } int main(int argc, char **argv) { DB_ENV *db_environ; const char *db_home; if(argc<2) { fprintf(stdout, "Usage: %s <option num> db_dir\n", argv[0]); return 1; } db_home=argv[1]; error_exit("creating environment", db_env_create(&db_environ, 0)); db_environ->set_errfile(db_environ, stderr); error_exit("verbose DB_VERB_DEADLOCK", db_environ->set_verbose( db_environ, DB_VERB_DEADLOCK, 1)); error_exit("verbose DB_VERB_RECOVERY", db_environ->set_verbose( db_environ, DB_VERB_RECOVERY, 1)); error_exit("verbose DB_VERB_REGISTER", db_environ->set_verbose( db_environ, DB_VERB_REGISTER, 1)); error_exit("verbose DB_VERB_REPLICATION", db_environ->set_verbose( db_environ, DB_VERB_REPLICATION, 1)); error_exit("verbose DB_VERB_WAITSFOR", db_environ->set_verbose( db_environ, DB_VERB_WAITSFOR, 1)); error_exit("opening environment", db_environ->open(db_environ, db_home, DB_CREATE | DB_INIT_CDB | DB_INIT_MPOOL, 0600)); error_exit("closing environment", db_environ->close(db_environ, 0)); return 0; } ---------------------------------------- -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.14-rc3 Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages libdb4.4 depends on: ii libc6 2.3.6-1 GNU C Library: Shared libraries an libdb4.4 recommends no packages. -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]