ID: 51062 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 PHP Version: 5.3.1 New Comment:
some more investigation reveals that the problem was caused by having db4.8 headers alongside db4.6 and db4.8 runtime libraries (i.e. having installed libdb4.6, libdb4.8, and libdv-dev (which is 4.8 in latest debian/ubuntu)). the build scripts find the the headers from the db4.8 package, and the 4.6 libraries since there is no code for testing for versions > 4.6. strangely enough it's able to build/link. having the libdb4.6 headers installed instead of the 4.8 headers removes the problem and the tests pass, but i would argue that this is still a bug. namely: * php doesn't support building against db4.8 (i could report a seperate bug about this if it's better) * php wrongly builds against headers for one version of libdb and links against another. Previous Comments: ------------------------------------------------------------------------ [2010-02-16 21:52:06] seanius at debian dot org Description: ------------ Tested against the debian 5.3.1 packages as well as a recent 5.3 snapshot. fails on a variety of BE/LE and 32/64bit archs. note that the failure is different from the snapshot (Segfaults in some cases) and from 5.3.1 (various warnings about invalid parameters). i don't want to flood the description so i'll only include the 5.3 snapshot output here. ===================================================================== PHP : ./sapi/cli/php PHP_SAPI : cli PHP_VERSION : 5.3.3-dev ZEND_VERSION: 2.3.0 PHP_OS : Linux - Linux rangda 2.6.32-trunk-amd64 #1 SMP Sun Jan 10 22:40:40 UTC 2010 x86_64 INI actual : /home/sean/Download/php5.3-201002160730 More .INIs : CWD : /home/sean/Download/php5.3-201002160730 Extra dirs : VALGRIND : Not used ===================================================================== Running selected tests. TEST 1/25 [ext/dba/tests/bug36436.phpt] ========DIFF======== 001+ DB->sync: method not permitted before handle's open method 002+ Segmentation fault 001- resource(%d) of type (dba persistent) 002- string(3) "XYZ" 003- string(1) "X" 004- string(1) "Y" 005- ===DONE=== ========DONE======== FAIL Bug #36436 (DBA problem with Berkeley DB4) [ext/dba/tests/bug36436.phpt] TEST 2/25 [ext/dba/tests/bug48240.phpt] ========DIFF======== 001+ DB->sync: method not permitted before handle's open method 002- ===DONE=== 003+ Segmentation fault ========DONE======== FAIL Bug #48240 (DBA Segmentation fault dba_nextkey) [ext/dba/tests/bug48240.phpt] TEST 3/25 [ext/dba/tests/bug49125.phpt] ========DIFF======== 001+ DB->sync: method not permitted before handle's open method 001- bool(true) 002+ Segmentation fault ========DONE======== FAIL Bug #49125 (Error in dba_exists C code) [ext/dba/tests/bug49125.phpt] PASS DBA File Creation Test [ext/dba/tests/dba001.phpt] PASS DBA Insert/Fetch Test [ext/dba/tests/dba002.phpt] PASS DBA Insert/Replace/Fetch Test [ext/dba/tests/dba003.phpt] PASS DBA Multiple Insert/Fetch Test [ext/dba/tests/dba004.phpt] PASS DBA FirstKey/NextKey Loop Test With 5 Items [ext/dba/tests/dba005.phpt] PASS DBA FirstKey/NextKey with 2 deletes [ext/dba/tests/dba006.phpt] PASS DBA Multiple File Creation Test [ext/dba/tests/dba007.phpt] PASS DBA magic_quotes_runtime Test [ext/dba/tests/dba008.phpt] PASS DBA dba_popen Test [ext/dba/tests/dba009.phpt] PASS DBA CDB handler test [ext/dba/tests/dba_cdb.phpt] PASS DBA CDB_MAKE handler test [ext/dba/tests/dba_cdb_make.phpt] PASS DBA CDB handler test (read only) [ext/dba/tests/dba_cdb_read.phpt] SKIP DBA DB1 handler test [ext/dba/tests/dba_db1.phpt] reason: DB1 handler not available SKIP DBA DB2 handler test [ext/dba/tests/dba_db2.phpt] reason: DB2 handler not available SKIP DBA DB3 handler test [ext/dba/tests/dba_db3.phpt] reason: DB3 handler not available TEST 19/25 [ext/dba/tests/dba_db4.phpt] ========DIFF======== 002+ DB->sync: method not permitted before handle's open method 003+ DB->get: method not permitted before handle's open method 004+ DB->get: method not permitted before handle's open method 005+ DB->fd: method not permitted before handle's open method 006+ 0Segmentation fault 002- 3NYNYY 003- Content String 2 004- Content 2 replaced 005- Read during write: not allowed 006- Content 2 replaced 2nd time 007- The 6th value 008- array(3) { 009- ["key number 6"]=> 010- string(13) "The 6th value" 011- ["key2"]=> 012- string(27) "Content 2 replaced 2nd time" 013- ["key5"]=> 014- string(23) "The last content string" 015- } 016- --NO-LOCK-- 017- 3NYNYY 018- Content String 2 019- Content 2 replaced 020- Read during write: not allowed 021- Content 2 replaced 2nd time 022- The 6th value 023- array(3) { 024- ["key number 6"]=> 025- string(13) "The 6th value" 026- ["key2"]=> 027- string(27) "Content 2 replaced 2nd time" 028- ["key5"]=> 029- string(23) "The last content string" 030- } 031- ===DONE=== ========DONE======== FAIL DBA DB4 handler test [ext/dba/tests/dba_db4.phpt] SKIP DBA DBM handler test [ext/dba/tests/dba_dbm.phpt] reason: DBM handler not available PASS DBA FlatFile handler test [ext/dba/tests/dba_flatfile.phpt] SKIP DBA GDBM handler test [ext/dba/tests/dba_gdbm.phpt] reason: GDBM handler not available PASS DBA INIFILE handler test [ext/dba/tests/dba_inifile.phpt] SKIP DBA NDBM handler test [ext/dba/tests/dba_ndbm.phpt] reason: NDBM handler not available SKIP DBA QDBM handler test [ext/dba/tests/dba_qdbm.phpt] reason: QDBM handler not available ===================================================================== Number of tests : 25 18 Tests skipped : 7 ( 28.0%) -------- Tests warned : 0 ( 0.0%) ( 0.0%) Tests failed : 4 ( 16.0%) ( 22.2%) Expected fail : 0 ( 0.0%) ( 0.0%) Tests passed : 14 ( 56.0%) ( 77.8%) --------------------------------------------------------------------- Time taken : 0 seconds ===================================================================== ===================================================================== FAILED TEST SUMMARY --------------------------------------------------------------------- Bug #36436 (DBA problem with Berkeley DB4) [ext/dba/tests/bug36436.phpt] Bug #48240 (DBA Segmentation fault dba_nextkey) [ext/dba/tests/bug48240.phpt] Bug #49125 (Error in dba_exists C code) [ext/dba/tests/bug49125.phpt] DBA DB4 handler test [ext/dba/tests/dba_db4.phpt] ===================================================================== Reproduce code: --------------- ext/dba/tests/bug36436.phpt ext/dba/tests/bug48240.phpt ext/dba/tests/bug49125.phpt ext/dba/tests/dba_db4.phpt Expected result: ---------------- PASS Actual result: -------------- FAIL (incl segfaults) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=51062&edit=1