| Bug #15419 | ibase_close problem | ||||
|---|---|---|---|---|---|
| Submitted: | 7 Feb 2002 2:55am UTC | Modified: | 4 Apr 2002 3:09am UTC | ||
| From: | p dot grabowski at firma dot 2p dot pl | Assigned to: | daniela | ||
| Status: | Closed | Category: | InterBase related | ||
| Version: | 4.1.1 | OS: | linux red hat | ||
| Votes: | 2 | Avg. Score: | 2.5 ± 0.5 | Reproduced: | 1 of 1 (100.0%) |
| Same Version: | 1 (100.0%) | Same OS: | 1 (100.0%) | ||
[7 Feb 2002 3:17am UTC] mfischer@php.net
Can look up in your apache log if you get a segfault or some similar crash, and if so can you please provide a backtrace (http://bugs.php.net/?id=15419&edit=1) ?
[14 Feb 2002 6:52am UTC] markus at colorplaza dot com
We experienced this same bug. I tested it in RH 7.2 with IB 6. We run the same script from command line and got: Segmentation fault when I comment ibase_close($db) out the script works fine.
[8 Mar 2002 12:00am UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[12 Mar 2002 2:00pm UTC] haystd at myrealbox dot com
I can reproduce this as well. All is fine if the ibase_close call is
removed. It is a "Segmentation Fault" according to the Apache error_log.
(Could this be related to BUG 15940?) Here is the debugging info:
Program received signal SIGSEGV, Segmentation fault.
0x4019c07c in memcpy () from /lib/i686/libc.so.6
#0 0x4019c07c in memcpy () from /lib/i686/libc.so.6
#1 0x00000018 in ?? ()
#2 0x4003e564 in gds__msg_format () from /opt/interbase/lib/libgds.so
#3 0x4003e1c8 in gds__interprete () from /opt/interbase/lib/libgds.so
#4 0x40038ab3 in isc_interprete () from /opt/interbase/lib/libgds.so
#5 0x0808315a in _php_ibase_error () at interbase.c:268
#6 0x08083477 in _php_ibase_free_result (rsrc=0x82151a4) at
interbase.c:388
#7 0x081214f7 in list_entry_destructor (ptr=0x82151a4) at
zend_list.c:177
#8 0x0811f775 in zend_hash_del_key_or_index (ht=0x81c8e64, arKey=0x0,
nKeyLength=0, h=2, flag=1) at zend_hash.c:512
#9 0x08121281 in _zend_list_delete (id=2) at zend_list.c:56
#10 0x0811906d in _zval_dtor (zvalue=0x8215164,
__zend_filename=0x8191cdc "zend_execute_API.c", __zend_lineno=274)
at zend_variables.c:64
#11 0x08110e4a in _zval_ptr_dtor (zval_ptr=0x8215910,
__zend_filename=0x81925b3 "zend_variables.c", __zend_lineno=192)
at zend_execute_API.c:274
#12 0x0811939f in _zval_ptr_dtor_wrapper (zval_ptr=0x8215910)
at zend_variables.c:192
#13 0x0811f895 in zend_hash_destroy (ht=0x81c8d48) at zend_hash.c:541
#14 0x08110b4a in shutdown_executor () at zend_execute_API.c:173
#15 0x0811a1aa in zend_deactivate () at zend.c:600
#16 0x0807acdc in php_request_shutdown (dummy=0x0) at main.c:735
#17 0x08125c5a in apache_php_module_main (r=0x820859c,
display_source_mode=0)
at sapi_apache.c:96
#18 0x0807843c in send_php ()
#19 0x08078495 in send_parsed_php ()
#20 0x081471e3 in ap_invoke_handler ()
#21 0x0815b3c3 in process_request_internal ()
#22 0x0815b424 in ap_process_request ()
#23 0x0815288d in child_main ()
#24 0x08152a38 in make_child ()
#25 0x08152bac in startup_children ()
#26 0x08153224 in standalone_main ()
#27 0x08153a77 in main ()
#28 0x4012f627 in __libc_start_main (main=0x81536e0 <main>, argc=2,
ubp_av=0xbffffb94, init=0x8060014 <_init>, fini=0x8169c00 <_fini>,
rtld_fini=0x4000dcc4 <_dl_fini>, stack_end=0xbffffb8c)
at ../sysdeps/generic/libc-start.c:129
PHP configured with:
./configure --without-mysql --with-apache=../apache_1.3.22/
--enable-track-vars --with-interbase=/opt/interbase --enable-debug
Apache configured with:
./configure --prefix=/usr/local/apache
--activate-module=src/modules/php4/libphp4.a
Firebase version: FirebirdSS-1.0.0.681-0.RC2
OS: RedHat 7.2 (Intel)
Kernel: 2.4.17 (from kernel.org no patches)
Libc: 2.2.4
GCC: 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
PHP: 4.1.2
[24 Mar 2002 12:47pm UTC] daniela@php.net
The ibase_connect() create a connection that will be close automatically at the end of your script. If you want to end it "manually" you have to 'free' the query too. Try this : ...... ibase_free_result($q); ibase_close($dbc1);
[25 Mar 2002 3:41am UTC] daniela@php.net
change status in analyzed
[2 Apr 2002 4:32pm UTC] dbadmin at avenet dot stw dot uni-erlangen dot de
BUG 14558 seems to be the like this one. the solution to first call ibase_free_result before ibase_close solves bug 14558! But it would be good to mention this fact in the php-interbase-docu that you must not call ibase_close without ibase_free_result
[4 Apr 2002 3:09am UTC] daniela@php.net
Fixed in today CVS (4.3.0-dev).

<? $dbc1=ibase_connect('/opt/interbase/bazy/slownik.gdb','SYSDBA','masterke y','WIN1250'); $qST="SELECT NAME,OPIS FROM SLOWNIK WHERE ID=$idD"; $q=ibase_query($dbc1,$qST); list($nameDB,$descriptDB)=ibase_fetch_row($q); ibase_close($dbc1); // here is a bug ?> './configure' '--prefix=/usr/local/php4.1.1/' '--enable-track-vars' '--enable-trans-sid' '--with-mysql' '--disable-debug' '--with-apxs=/usr/local/apache-local/bin/apxs' '--enable-shmop' '--enable-xml' '--enable-sockets' '--with-gd' '--with-interbase=/opt/interbase/' Any command after ibase_close doesn't execute and apache returns 404 return code