|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-07-25 08:30 UTC] james at stealthnet dot co dot uk
I believe that after several hours of head-scratching I've located a problem that causes one entire website to stop loading (all pages), and one additional unrelated script to experience the same problem. Here goes... We were informed that one of our domains had stopped responding. We checked, and we were getting zero bytes returned to the browser. Sometimes even Apache's error/access logs were failing to log our accesses. Other sites on the same server were working fine. Then a few hours later, without any intervention from us, we discovered that the site was back up. Then a few days later, it was back down again. We checked the server, and we had several httpds that were busy but hung. The load on the machine is usually 0.00 (very light), but now it was close to 2.00, most of which was down to mysqld for some reason. We ran a thorough check over the databases and found no problems. Several head-scratching hours later of watching the site go down, come up, etc., we recompiled the whole lot and rebooted. Still no change. And then we discovered today about the unrelated web page that was also hanging. So I took down apache, let the load drop to 0.25, then ran php -f <the script that hangs> and indeed it was hanging still. Then PHP spewed out numerous recursive calls to free() and then segfaulted. I repeated the the cgi test on a dev box, and it worked. I found out that the cgi on the production box that didn't work was 4.2.1, the dev box's was 4.2.0. So I installed 4.2.0 as an apache module on our dev box, and indeed the full site came back up. I'm therefore of the belief that PHP 4.2.1+ is sometimes hanging on pages accessing a MySQL database. I've spoken to someone else, who's telling me he's had the same problem, but on a Linux server whereas his FreeBSD box was fine with it. He's had to downgrade PHP to 4.1.2. I shall follow this report up with a link to the script as a .phps, and hopefully the database it's supposed to work on (it outputs the database in XML) once I get clearance. The unrelated entire site also works on a mysql database on every page view, however it uses a different database. All very bizarre, but they all worked perfectly prior to installing 4.2.1+. Hope to follow this up in a few hours with more details and testcase. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 10:00:01 2025 UTC |
GDB says: Reading symbols from /usr/libexec/ld-elf.so.1...done. #0 0x80d63d4 in _efree (ptr=0x829e024, __zend_filename=0x812ff7c "zend_execute_API.c", __zend_lineno=274, __zend_orig_filename=0x8130813 "zend_variables.c", __zend_orig_lineno=44) at zend_alloc.c:240 240 REMOVE_POINTER_FROM_LIST(p); (gdb) bt #0 0x80d63d4 in _efree (ptr=0x829e024, __zend_filename=0x812ff7c "zend_execute_API.c", __zend_lineno=274, __zend_orig_filename=0x8130813 "zend_variables.c", __zend_orig_lineno=44) at zend_alloc.c:240 #1 0x80e60d0 in _zval_dtor (zvalue=0x819a5e4, __zend_filename=0x812ff7c "zend_execute_API.c", __zend_lineno=274) at zend_variables.c:44 #2 0x80ddb77 in _zval_ptr_dtor (zval_ptr=0x818a430, __zend_filename=0x8130813 "zend_variables.c", __zend_lineno=189) at zend_execute_API.c:274 #3 0x80e6488 in _zval_ptr_dtor_wrapper (zval_ptr=0x818a430) at zend_variables.c:189 #4 0x80ecb8a in zend_hash_destroy (ht=0x8158de8) at zend_hash.c:541 #5 0x80dd876 in shutdown_executor () at zend_execute_API.c:173 #6 0x80e72c4 in zend_deactivate () at zend.c:596 #7 0x805cc72 in php_request_shutdown (dummy=0x0) at main.c:787 #8 0x805b582 in main (argc=3, argv=0xbfbffbd8) at cgi_main.c:827 #9 0x805a565 in _start () Note no execute() function which seems to tie in with my not always finding connection attempts logged in the f4p.log access log (well, clutching at straws).