php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #8812 Calling zend_error during module shutdown causes PHP to crash.
Submitted: 2001-01-19 16:06 UTC Modified: 2001-07-22 12:46 UTC
From: tomr at instipro dot com Assigned:
Status: Closed Package: Scripting Engine problem
PHP Version: 4.0.3pl1 OS: Solaris, Linux
Private report: No CVE-ID: None
 [2001-01-19 16:06 UTC] tomr at instipro dot com
If you call zend_error during the shutdown sequence for a module then you
get a core because there is no longer a valid error_filename.

We eliminated this from our code, at some cost to its generality, but then the same error occurs if, eg, you can't rollback your oracle transaction during
the shutdown of the Oracle module.

Simple fix:  in zend_error, test to see if you are in the middle of shutdown
and don't attempt to write to error_filename if so.

Better fix:  close error_filename AFTER all the modules are shutdown.

Traceback follows:
'
(gdb) bt
#0  0xfe8b6da4 in strlen () from /usr/lib/libc.so.1
#1  0xfe8ffe18 in _doprnt () from /usr/lib/libc.so.1
#2  0xfe901ad0 in snprintf () from /usr/lib/libc.so.1
#3  0xe3b88 in php_error_cb (type=2, 
    error_filename=0x5a5a5a5a <Address 0x5a5a5a5a out of bounds>, 
    error_lineno=0, format=0x36e760 "%s: %s", args=0xffbee1cc) at main.c:388
#4  0x1ea440 in zend_error (type=2, format=0x36e760 "%s: %s") at zend.c:596
#5  0x12dde8 in oci_error (err_p=0x93dac4, 
    what=0x36e670 "failed to rollback outstanding transactions!", status=-1)
    at oci8.c:747
#6  0x12dad4 in _oci_conn_list_dtor (connection=0xbf5740) at oci8.c:658
#7  0x1f32b0 in list_entry_destructor (ptr=0x638260) at zend_list.c:253
#8  0x1f0a0c in zend_hash_apply_deleter (ht=0x411d10, p=0xbf68a0)
    at zend_hash.c:619
#9  0x1f0cc8 in zend_hash_graceful_destroy (ht=0x411d10) at zend_hash.c:670
#10 0x1f3434 in zend_destroy_rsrc_list () at zend_list.c:298
#11 0x1db664 in shutdown_executor () at zend_execute_API.c:179
#12 0x1ea16c in zend_deactivate () at zend.c:513
#13 0xe4738 in php_request_shutdown (dummy=0x0) at main.c:669
#14 0xe0ab0 in php_apache_request_shutdown ()
#15 0x28320c in run_cleanups () at atx_prop.cpp:94
#16 0x280980 in ap_clear_pool () at atx_prop.cpp:94
#17 0x280a10 in ap_destroy_pool () at atx_prop.cpp:94
#18 0x280968 in ap_clear_pool () at atx_prop.cpp:94
#19 0x298058 in child_main () at atx_prop.cpp:94
#20 0x298aec in make_child () at atx_prop.cpp:94
#21 0x298c10 in startup_children () at atx_prop.cpp:94
#22 0x299600 in standalone_main () at atx_prop.cpp:94
#23 0x29a1fc in main () at atx_prop.cpp:94


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-06-18 10:04 UTC] kalowsky@php.net
have you tried this with one of the latest releases or RC's?
 [2001-07-22 12:46 UTC] andy@php.net
no feedback
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Mar 29 00:01:28 2024 UTC