Hello,

I am noticing a strange effect in php-4.3.5RC1 while using
dba_open("name", "c", "db4") -- this used to work in php-4.3.3
(I have both libphp4.so versions and can switch between them)
but it fails in php-4.3.5RC1 with the error message:

  Warning: dba_open(...,c):
  Driver initialization failed for handler: db4: Unable to establish lock

(no matter if I use "c", "cd" or "ct" for the flags). The only
possibility to get it working is by using "c-" for $flags.

Note that in ext/dba/dba_db4.c, I see some clues about a
db4-internal locking:

--snip--dba_db4.c::DBA_OPEN_FUNC(db4)
#ifdef DB_FCNTL_LOCKING
        gmode |= DB_FCNTL_LOCKING;
#endif
--snip--

so I tried to change the handler[] for db4 to:

--snip--dba.c::handler[]
#if DBA_DB4
#ifdef DB_FCNTL_LOCKING
        DBA_HND(db4, DBA_LOCK_EXT) /* Locking done in library if set */
#else
        DBA_HND(db4, DBA_LOCK_ALL) /* No lock in lib */
#endif
#endif
--snip--

but that doesn't change the observed behaviour.

Is it *my* error, or is something really broken in php-4.3.5RC1?

  Martin
-- 
<[EMAIL PROTECTED]>         |     Fujitsu Siemens
Fon: +49-89-636-46021, FAX: +49-89-636-47655 | 81730  Munich,  Germany

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to