ID: 23975 Comment by: adam at saki dot com dot au Reported By: rhalstenbach at t-online dot de Status: Assigned Bug Type: DBM/DBA related Operating System: Windows PHP Version: 4.3.2 Assigned To: helly New Comment:
This is actually because the locking will prematurely create an empty file, causing the VCWD_STAT command in dba_db3.c to return 0, resulting in the wrong parameters to db_open. This can be verified by putting a stat command after the lock detection code and before the call to open (line 590 in ext/dba/dba.c). Previous Comments: ------------------------------------------------------------------------ [2003-06-05 01:28:33] [EMAIL PROTECTED] Marcus, take a look? ------------------------------------------------------------------------ [2003-06-03 03:43:56] rhalstenbach at t-online dot de The new locking feature (introduced with 4.3.0) does not work correctly in default mode "d". Very annoying because it is the default mode ... Example: <?php $d1 = dba_open("c:/www/htdocs/dbfile", "c", "db3); // Old syntax, specifying no locking mode means mode "d", i.e. same as "cd" if ($d1 === FALSE) die("Could not open dbfile"); ?> Same problem for mode "w". It works correctly for locking mode "l" and for suppressing locking via "-". Obviously the dba_open() function tries to create a lock file with exactly the same name as the database file - what fails of course. Tested on WindowsXP with db3, but i think it will fail for every db-driver (except gdbm) on every OS. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=23975&edit=1