From: withpaul at yahoo dot com Operating system: sparc-sun-solaris2.8 PHP version: 5.0.2 PHP Bug Type: Session related Bug description: SIGSEGV, Segmentation fault
Description: ------------ Apache must be restarted after PHP error. Receiving intermittent error within 1-20 minutes after starting / restarting Apache2 server when any given random OCI function call against an Oracle9 database server occurs. NOTE: firewall exists between the Apache host server and Oracle server (suspect and cannot test bypassing firewall due to extended policy process at organization): PHP Warning: Unknown: _oci_close_session OCIHandleAlloc OCI_HTYPE_SVCCTX: OCI_INVALID_HANDLE in Unknown on line 0, referer: [http://mysitex.domain.com/something.php] Unknown(0) : Warning - Unknown: _oci_close_session OCIHandleAlloc OCI_HTYPE_SVCCTX: OCI_INVALID_HANDLE TEMPORARY DIAGNOSIS AND STRATEGY UNTIL FIREWALL CAN BE BYPASSED FOR FURTHER TESTING: We were using: http://www.php.net/manual/en/function.session-set-save-handler.php We are now using: Turning off database management of session related info and enabling following in PHP.INI: session.save_handler = files session.save_path = /tmp (a writeable directory by Apache5) (then confirming that session related temporary files are being opened in session.save_path) Ploblem no longer occurring at present. (36+ hours) Believe it is a firewall or OCI connectivity issue with the Oracle server. Question: With the included TraceLog (minus the GDB error), can we avoid from a PHP source perspective, an Apache2 segfault? It may be awhile before we can ascertain what causes this problem such as the suspected firewall between servers or some process on the web server that may be interfering. Reproduce code: --------------- Intermittent issue - not consistently reproducable. Actual result: -------------- Program received signal SIGSEGV, Segmentation fault. 0xfdcd27e4 in _oci_close_session (session=0x2e8c68) at /usr/local/src/php-5.0.2/ext/oci8/oci8.c:2941 2941 CALL_OCI_RETURN(OCI(error), (gdb) bt #0 0xfdcd27e4 in _oci_close_session (session=0x2e8c68) at /usr/local/src/php-5.0.2/ext/oci8/oci8.c:2941 #1 0xfdccc368 in _oci_session_list_dtor (rsrc=0x2d1ab0) at /usr/local/src/php-5.0.2/ext/oci8/oci8.c:1124 #2 0xfdeed8b8 in list_entry_destructor (ptr=0x2d1ab0) at /usr/local/src/php-5.0.2/Zend/zend_list.c:178 #3 0xfdeea414 in zend_hash_apply_deleter (ht=0xfe0f0b10, p=0x22aa18) at /usr/local/src/php-5.0.2/Zend/zend_hash.c:574 #4 0xfdeea7c4 in zend_hash_graceful_reverse_destroy (ht=0xfe0f0b10) at /usr/local/src/php-5.0.2/Zend/zend_hash.c:640 #5 0xfdeedb34 in zend_destroy_rsrc_list (ht=0xfe0f0b10) at /usr/local/src/php-5.0.2/Zend/zend_list.c:234 #6 0xfdec711c in shutdown_executor () at /usr/local/src/php-5.0.2/Zend/zend_execute_API.c:285 #7 0xfdedd0b0 in zend_deactivate () at /usr/local/src/php-5.0.2/Zend/zend.c:818 #8 0xfde66bb8 in php_request_shutdown (dummy=0x0) at /usr/local/src/php-5.0.2/main/main.c:1212 #9 0xfdf29d68 in php_apache_request_dtor (r=0x1edbf0) at /usr/local/src/php-5.0.2/sapi/apache2handler/sapi_apache2.c:435 #10 0xfdf2a58c in php_handler (r=0x1edbf0) at /usr/local/src/php-5.0.2/sapi/apache2handler/sapi_apache2.c:553 #11 0x00046388 in ap_run_handler (r=0x1edbf0) at config.c:151 ---Type <return> to continue, or q <return> to quit--- #12 0x0004692c in ap_invoke_handler (r=0x1edbf0) at config.c:363 #13 0x00033c74 in ap_process_request (r=0x1edbf0) at http_request.c:246 #14 0x0002f15c in ap_process_http_connection (c=0x1e2bd8) at http_core.c:250 #15 0x000519ec in ap_run_process_connection (c=0x1e2bd8) at connection.c:42 #16 0x00044c7c in child_main (child_num_arg=1969000) at prefork.c:609 #17 0x00044e5c in make_child (s=0x99950, slot=0) at prefork.c:649 #18 0x00044ee0 in startup_children (number_to_start=4) at prefork.c:721 #19 0x000456a0 in ap_mpm_run (_pconfstabsread.c:624: internal-error: sect_index_data not initialized A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) n stabsread.c:624: internal-error: sect_index_data not initialized A problem internal to GDB has been detected, further debugging may prove unreliable. Create a core file of GDB? (y or n) n ) at prefork.c:940 #20 0x0004b36c in main (argc=2, argv=0xffbefc84) at main.c:617 Here's the "frame" data for each line above... (gdb) frame 0 #0 0xfdcd27e4 in _oci_close_session (session=0x2e8cb0) at /usr/local/src/php-5.0.2/ext/oci8/oci8.c:2941 2941 CALL_OCI_RETURN(OCI(error), (gdb) frame 1 #1 0xfdccc368 in _oci_session_list_dtor (rsrc=0x2d1b30) at /usr/local/src/php-5.0.2/ext/oci8/oci8.c:1124 1124 _oci_close_session(session); (gdb) frame 2 #2 0xfdeed8b8 in list_entry_destructor (ptr=0x2d1b30) at /usr/local/src/php-5.0.2/Zend/zend_list.c:178 178 ld->list_dtor_ex(le TSRMLS_CC); (gdb) frame 3 #3 0xfdeea414 in zend_hash_apply_deleter (ht=0xfe0f0b10, p=0x215898) at /usr/local/src/php-5.0.2/Zend/zend_hash.c:574 574 ht->pDestructor(p->pData); (gdb) frame 4 #4 0xfdeea7c4 in zend_hash_graceful_reverse_destroy (ht=0xfe0f0b10) at /usr/local/src/php-5.0.2/Zend/zend_hash.c:640 640 zend_hash_apply_deleter(ht, p); (gdb) frame 5 #5 0xfdeedb34 in zend_destroy_rsrc_list (ht=0xfe0f0b10) at /usr/local/src/php-5.0.2/Zend/zend_list.c:234 234 zend_hash_graceful_reverse_destroy(ht); (gdb) frame 6 #6 0xfdec711c in shutdown_executor () at /usr/local/src/php-5.0.2/Zend/zend_execute_API.c:285 285 zend_destroy_rsrc_list(&EG(regular_list) TSRMLS_CC); (gdb) frame 7 #7 0xfdedd0b0 in zend_deactivate () at /usr/local/src/php-5.0.2/Zend/zend.c:818 818 shutdown_executor(TSRMLS_C); (gdb) frame 8 #8 0xfde66bb8 in php_request_shutdown (dummy=0x0) at /usr/local/src/php-5.0.2/main/main.c:1212 1212 zend_deactivate(TSRMLS_C); (gdb) frame 9 #9 0xfdf29d68 in php_apache_request_dtor (r=0x1f1c00) at /usr/local/src/php-5.0.2/sapi/apache2handler/sapi_apache2.c:435 435 php_request_shutdown(NULL); (gdb) frame 10 #10 0xfdf2a58c in php_handler (r=0x1f1c00) at /usr/local/src/php-5.0.2/sapi/apache2handler/sapi_apache2.c:553 553 php_apache_request_dtor(r TSRMLS_CC); (gdb) frame 11 #11 0x00046388 in ap_run_handler (r=0x1f1c00) at config.c:151 151 config.c: No such file or directory. in config.c (gdb) frame 12 #12 0x0004692c in ap_invoke_handler (r=0x1f1c00) at config.c:363 363 in config.c (gdb) frame 13 #13 0x00033c74 in ap_process_request (r=0x1f1c00) at http_request.c:246 246 http_request.c: No such file or directory. in http_request.c (gdb) frame 14 #14 0x0002f15c in ap_process_http_connection (c=0x1e2bd8) at http_core.c:250 250 http_core.c: No such file or directory. in http_core.c (gdb) frame 15 #15 0x000519ec in ap_run_process_connection (c=0x1e2bd8) at connection.c:42 42 connection.c: No such file or directory. in connection.c (gdb) frame 16 #16 0x00044c7c in child_main (child_num_arg=1969000) at prefork.c:609 609 prefork.c: No such file or directory. in prefork.c (gdb) frame 17 #17 0x00044e5c in make_child (s=0x99950, slot=0) at prefork.c:649 649 in prefork.c (gdb) frame 18 #18 0x00044ee0 in startup_children (number_to_start=4) at prefork.c:721 721 in prefork.c (gdb) frame 19 #19 0x000456a0 in ap_mpm_run (_pconfstabsread.c:624: internal-error: sect_index_data not initialized Here's the server error log entry for this... [client 127.0.0.1] PHP Warning: Unknown: _oci_close_session OCIHandleAlloc OCI_HTYPE_SVCCTX: OCI_INVALID_HANDLE in Unknown on line 0, referer: http://qa1profiles.fcprofiles.com/xq25/admin/login.php Unknown(0) : Warning - Unknown: _oci_close_session OCIHandleAlloc OCI_HTYPE_SVCCTX: OCI_INVALID_HANDLE -- Edit bug report at http://bugs.php.net/?id=30697&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=30697&r=trysnapshot4 Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=30697&r=trysnapshot50 Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=30697&r=trysnapshot51 Fixed in CVS: http://bugs.php.net/fix.php?id=30697&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=30697&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=30697&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=30697&r=needscript Try newer version: http://bugs.php.net/fix.php?id=30697&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=30697&r=support Expected behavior: http://bugs.php.net/fix.php?id=30697&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=30697&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=30697&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=30697&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=30697&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=30697&r=dst IIS Stability: http://bugs.php.net/fix.php?id=30697&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=30697&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=30697&r=float MySQL Configuration Error: http://bugs.php.net/fix.php?id=30697&r=mysqlcfg