ID:               21743
 User updated by:  [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Assigned
 Bug Type:         DBM/DBA related
 Operating System: RedHat Linux 7.2
 PHP Version:      4.3.0
 Assigned To:      helly
 New Comment:

I also encountered segfaults with db4 compiled with 
--with-db3=dir but not with db3 supplied by redhat.


Previous Comments:
------------------------------------------------------------------------

[2003-01-29 18:59:10] [EMAIL PROTECTED]

Called my contact at Berkeley and got the link to the 3.2
version. Now i am able to reproduce a segfault...I'll look
into deeper ASAP

------------------------------------------------------------------------

[2003-01-26 23:49:22] [EMAIL PROTECTED]

I've tested it with db3-3.3 (RedHat 7.3) and also   
experienced the same result :(. 
 
Older berkeley db sources can be obtained from 
http://rpmfind.net as SRPMSs.  
 
I've also uploaded my binary dba.so to 
http://priyadi.net/php/dba.so if that will help. It is 
compiled with --with-flatfile --with-cdb --with-db3. 
Compiled on a RedHat 7.2 system, and db3-3.2.9.

------------------------------------------------------------------------

[2003-01-26 08:01:02] [EMAIL PROTECTED]

I've reconfigured my system with shared dba and db3-3.3
and cannot reproduce you results. Hopefully i can get a
copy of the db-3.2 source distrubution which is no longer
online :-(

------------------------------------------------------------------------

[2003-01-26 00:21:47] [EMAIL PROTECTED]

> First please try this (note the "-" after "c":         
> <?           
> dl("dba.so");           
> $a = dba_open("test", "c-", "db3");           
> ?>           
         
It is working!        
        
# php 2.php        
Content-type: text/html        
X-Powered-By: PHP/4.3.0        
        
        
# ls -al test        
-rw-r--r--    1 root     root         8192 Jan 26 12:34        
test        
# file test        
test: Berkeley DB (Btree, version 8, native byte-order)        
        
         
> Then please try if you can create and open an new file:         
> <?           
> dl("dba.so");           
> $a = dba_open("test2", "n-", "db3");          
> var_dump($a);         
> dba_close($a);         
> $b = dba_open("test2", "r-", "db3");         
> var_dump($b);         
> dba_close($b);         
> ?>           
        
It is working...        
        
# php 3.php         
Content-type: text/html        
X-Powered-By: PHP/4.3.0        
        
resource(1) of type (dba)        
resource(2) of type (dba)        
        
        
> after that: From your configure script:         
> --enable-dba=shared \           
>        --with-gdbm \           
>        --with-db3 \           
>        --with-cdb=/usr \           
>        --with-flatfile \          
>         
> This means you cannot have db2.         
         
> However you found a problem here: --with-cdb always         
loads         
> the internal cdb support (so thanks here i've fixed         
> this part already in cvs).         
        
OK, while we are at this, it seems there is another        
related problem. --without-db3 (or db2, flatfile, and       
others too) doesn't seem to be working. configure will     
show that db3 will not be included (checking for Berkeley     
DB3 support... no), but it will still be included if it     
finds one on my system, and the resulting binary will not     
be linked to DB3 library as shown by ldd. And     
--without-flatfile (and maybe --without-cdb too) will     
cause undefined symbol error but I think you already know    
that :)    
        
> Could you try (with only db3, cdb and flatfile)         
> --enable-dba=shared \           
>         --with-db3 \           
>         --with-cdb \           
>         --with-flatfile \          
     
Doesn't work. :(     
     
> Maybe you could also try db4 or db4.1 versions buy          
> --with-db3=/path/to/db4 for PHP 4.3 or --with-db4 for         
cvs versions.          
         
I'll get back to you later on this after I finally 
finished downloading and compiling (the sql worm thing is 
still wreaking havoc here) 
   
On a side note, ext/dba from PHP 4.2.1 works (phpize'ed),  
maybe because it doesn't have locking? 
 
Oh, is it possible that BerkeleyDB has its own locking 
mechanism that is conflicting with PHP's? Consider this 
scenario: 
- on dba_open, php locks the berkeley db file 
- php then handles opening the db file to berkeley db 
library 
- berkeley db tries to lock the file, but since it is 
already locked by php it will eventually time out 
 
>From berkeley db documentation, it seems that it does its 
own locking. 
http://www.sleepycat.com/docs/ref/lock/intro.html

------------------------------------------------------------------------

[2003-01-25 14:18:06] [EMAIL PROTECTED]

First please try this (note the "-" after "c":
<?  
dl("dba.so");  
$a = dba_open("test", "c-", "db3");  
?>  

Then please try if you can create and open an new file:
<?  
dl("dba.so");  
$a = dba_open("test2", "n-", "db3"); 
var_dump($a);
dba_close($a);
$b = dba_open("test2", "r-", "db3");
var_dump($b);
dba_close($b);
?>  


after that: From your configure script:
--enable-dba=shared \  
        --with-gdbm \  
        --with-db3 \  
        --with-cdb=/usr \  
        --with-flatfile \ 

This means you cannot have db2.

However you found a problem here: --with-cdb always loads
the internal cdb support (so thanks here i've fixed
this part already in cvs).

Could you try (with only db3, cdb and flatfile)
--enable-dba=shared \  
        --with-db3 \  
        --with-cdb \  
        --with-flatfile \ 


Maybe you could also try db4 or db4.1 versions buy 
--with-db3=/path/to/db4 for PHP 4.3 or --with-db4 for cvs versions. 

If this solves the problem then it is gdbm....

The zero length test file is created by the locking 
mechanism and after that calls to library should do
the rest but that failed...

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/21743

-- 
Edit this bug report at http://bugs.php.net/?id=21743&edit=1

Reply via email to