ID: 51086 User updated by: seanius at debian dot org Reported By: seanius at debian dot org Status: Open Bug Type: DBM/DBA related Operating System: Debian (and others) PHP Version: 5.3.1 New Comment:
a little more info: afaict the file is being created with zero size via some stream functions in dba.c. when db->open() is called with DB_CREATE|DB_TRUNCATE libdb4.8 tries to read some metadata from the existing file and fails horribly. i tried playing around with the flags (passing only DB_TRUNCATE does not work, passing only DB_CREATE seems to work but still produces the error message). Previous Comments: ------------------------------------------------------------------------ [2010-02-18 23:41:52] seanius at debian dot org Description: ------------ while the configure changes needed to get php to build against libdb4.8 are pretty trivial, there's unfortunately a significant behavior change in how libdb's db->open() reacts when called with DB_CREATE|DB_TRUNCATE on an existing zero-sized file. this also breaks other apps, such as sendmail or nvi, which use similar "locking hacks" (i'm guessing that's what's going on here) on db files. it's possible that this might be fixed in a later release of libdb4.8 in which case it might be good to refuse building against earlier versions of 4.8 when the fix does come out. in the meantime i'm wondering about the options for someone who can't back out to 4.7 :/ for reference: similar bug in sendmail: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565242 similar bug in nvi (gentoo dev "I'm not sure if this is a bug or a feature"): http://bugs.gentoo.org/286352 Reproduce code: --------------- run ext/dba/tests/bug36436.phpt, for example, or probably any other db4 related code after building against 4.8. Expected result: ---------------- PASS Actual result: -------------- FAIL, with error messages like: PHP Notice: dba_popen(): fop_read_meta: /home/sean/debian/php/ext/dba/tests/test0.dbm: unexpected file type or format in /home/sean/debian/php/ext/dba/tests/bug36436.php on line 6 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=51086&edit=1
