ID:               30052
 Updated by:       [EMAIL PROTECTED]
 Reported By:      tho at e-dict dot net
-Status:           Open
+Status:           Feedback
 Bug Type:         ODBC related
 Operating System: Linux
 PHP Version:      4.3.8
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip




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

[2004-09-10 17:20:47] tho at e-dict dot net

Description:
------------
Some of our database scripts produce segfaults when they are done. It
is difficult to supply sample code since the segfault depends at least
on the following:

* a successful call to odbc_pconnect('host:node','user', 'pass'); 

if odbc_pconnect fails there is no segfault

* some (included?) code before odbc_pconnect

While trying to reduce the code i noticed, that include(_once?) is
needed to trigger the problem. That's meant with "some _included_ code"
in the sample below.

* filename

"/var/home/tho/oss/sbwi/bin/php -c /var/home/tho/oss/sbwi/conf -f
/var/home/tho/oss/sbwi/dump1.php"
cores while the similar code in
"/var/home/tho/oss/sbwi/bin/php -c /var/home/tho/oss/sbwi/conf -f
/var/home/tho/oss/sbwi/dump.php"
does not core

The code itself works fine. The segfault always happens after the last
line.

We are connecting to ADABAS using ODBC

configure:

./configure\
         --prefix=$(PREFIX)\
         --with-adabas=$(adabas_dir)\
         --with-openssl=$(PREFIX) \
         --disable-session\
         --with-db\
         --without-gd\
         --with-config-file-path=$(PREFIX)/conf


Reproduce code:
---------------
<?
[...some _included_ code...]
$dbhandle = @odbc_pconnect('host:node','user', 'pass');
exit;
?>

Expected result:
----------------
no segfault :-)

Actual result:
--------------
(gdb) run -c /var/home/tho/oss/sbwi/conf -f
/var/home/tho/oss/sbwi/dump1.php
Starting program: /var/home/tho/oss/sbwi/bin/php -c
/var/home/tho/oss/sbwi/conf -f /var/home/tho/oss/sbwi/dump1.php

Program received signal SIGSEGV, Segmentation fault.
zend_hash_index_find (ht=0x82cece0, h=7, pData=0xbffff3f8) at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/Zend/zend_hash.c:967
967                     if ((p->h == h) && (p->nKeyLength == 0)) {
(gdb) bt
#0  zend_hash_index_find (ht=0x82cece0, h=7, pData=0xbffff3f8) at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/Zend/zend_hash.c:967
#1  0x081518af in _zend_list_find (id=7, type=0xbffff428) at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/Zend/zend_list.c:70
#2  0x080a212d in _close_odbc_pconn (rsrc=0x83071a0) at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/ext/odbc/php_odbc.c:250
#3  0x08151b1e in plist_entry_destructor (ptr=0x83071a0) at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/Zend/zend_list.c:203
#4  0x0815091a in zend_hash_apply_deleter (ht=0x82ced08, p=0x8323cb0)
at /var/home/tho/oss/sbwi/src/software/php-4.3.8/Zend/zend_hash.c:611
#5  0x08150a5b in zend_hash_graceful_reverse_destroy (ht=0x82ced08) at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/Zend/zend_hash.c:677
#6  0x08151bc2 in zend_destroy_rsrc_list (ht=0x82ced08) at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/Zend/zend_list.c:233
#7  0x0814bfb3 in zend_shutdown () at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/Zend/zend.c:554
#8  0x081262fe in php_module_shutdown () at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/main/main.c:1286
#9  0x08164319 in main (argc=5, argv=0xbffff694) at
/var/home/tho/oss/sbwi/src/software/php-4.3.8/sapi/cgi/cgi_main.c:1685
#10 0x401027ee in __libc_start_main () from /lib/libc.so.6



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


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

Reply via email to