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

Reply via email to