From: Alan H. <ala...@gm...> - 2005-04-18 20:39:34
|
On 4/18/05, Reini Urban <ru...@x-...> wrote: > There are only two changes which affect you. > The first is not important: > * Randomizing (a la Ethernet collision handling) competing locks. > $secs =3D 0.5 + ((double)rand(1,32767)/32767); > sleep($secs); > $watchdog -=3D $secs; > This changed the loop. > * Second, the change from "c" to "w" if the first "c" fails, > in line 59-60 >=20 > gdbm errors are all about locking and its improper handling within > php. gdbm itself works marvelous. Perhaps I should be a bit more detailed in my report: ----- error page ----- Fatal Error: lib/DbaDatabase.php:56: Error[256]: dba_open(/home/alanh/html/wiki/pages/pagedb.gdbm,w): Driver initialization failed for handler: gdbm: File open error file: /home/alanh/html/wiki/pages/pagedb.gdbm mode: c handler: gdbm lib/DbaDatabase.php:56: Error[256]: dba_open(/home/alanh/html/wiki/pages/pagedb.gdbm,w): Driver initialization failed for handler: gdbm: File open error file: /home/alanh/html/wiki/pages/pagedb.gdbm mode: c handler: gdbm ----- end error page ----- It's not giving me a failover to the "w" in the first place. If I put a "$mode =3D "w" right before the "while" statement, I get the same error except with w's instead of c's in the "mode" line. -alan --=20 Alan Hoyle - al...@un... - http://www.alanhoyle.com/ "I don't want the world, I just want your half." -TMBG Get Horizontal, Play Ultimate. |