Bug #65200 [Fbk]: Seg faults in php_free_pcre_cache on child exit

From: Date: Mon, 08 Jul 2013 07:16:05 +0000
Subject: Bug #65200 [Fbk]: Seg faults in php_free_pcre_cache on child exit
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-180125@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=65200&edit=1 ID: 65200 Updated by: ab@php.net Reported by: mmucklo at corp dot oodle dot com Summary: Seg faults in php_free_pcre_cache on child exit Status: Feedback Type: Bug Package: *General Issues Operating System: RHEL 6.4 PHP Version: 5.4.16 Block user comment: N Private report: N New Comment: From what i could analyse yet, this issue locale related. It happens on prefork child shutdown, so also PHP module shutdown. From this point not very bad. The PCRE patterns are cached by locale, so it might be reproduceable with a scenario like this - set locale - do some pcre stuff - change locale - do some pcre stuff ....... This is most likely a race condition in MSHUTDOWN while freeing PCRE cache under Apache prefork. You could try a simple script with this scenario. I'll be doing the same in the meantime. Or maybe you recognize this pattern in your app? Unfortunately that's all I could read from the BT so far. Thanks Previous Comments: ------------------------------------------------------------------------ [2013-07-06 00:59:14] mmucklo at corp dot oodle dot com It's probably not possible to boil into a single script as we're running symfony2 which is pulling in probably hundreds of files and various dependencies just to generate a single page. It does seem to happen rather consistently under simple manual testing of our site on a QA machine. Is there anything else we can do to help isolate the issue? ------------------------------------------------------------------------ [2013-07-04 06:36:07] ab@php.net Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2013-07-03 23:18:56] mmucklo at corp dot oodle dot com Description: ------------ Seeing regular Seg faults during child process clean up. Apache 2.2.24 PHP 5.4.16 Backtrace: Core was generated by `/service/local/apache/bin/httpd -f /service/conf/httpd.qvc.conf'. Program terminated with signal 6, Aborted. #0 0x00000031d26328a5 in raise () from /lib64/libc.so.6 Missing separate debuginfos, use: debuginfo-install cyrus-sasl-lib-2.1.23- 13.el6_3.1.x86_64 glibc-2.12-1.107.el6.x86_64 libgcc-4.4.7-3.el6.x86_64 libstdc++-4.4.7-3.el6.x86_64 nss-softokn-freebl-3.12.9-11.el6.x86_64 (gdb) bt #0 0x00000031d26328a5 in raise () from /lib64/libc.so.6 #1 0x00000031d2634085 in abort () from /lib64/libc.so.6 #2 0x00000031d26707b7 in __libc_message () from /lib64/libc.so.6 #3 0x00000031d26760e6 in malloc_printerr () from /lib64/libc.so.6 #4 0x00000031d267656d in malloc_consolidate () from /lib64/libc.so.6 #5 0x00000031d2678ba8 in _int_free () from /lib64/libc.so.6 #6 0x00007fbc90e882f3 in php_free_pcre_cache (data=0x3c9c220) at /workspace/source/external/build/php-5.4.16-apache/ext/pcre/php_pcre.c:96 #7 0x00007fbc913a8453 in zend_hash_destroy (ht=0x7fbc91c48060) at /workspace/source/external/build/php-5.4.16-apache/Zend/zend_hash.c:560 #8 0x00007fbc90e88382 in zm_globals_dtor_pcre (pcre_globals=0x7fbc91c48060) at /workspace/source/external/build/php-5.4.16-apache/ext/pcre/php_pcre.c:113 #9 0x00007fbc9139fe71 in module_destructor (module=0x1d80480) at /workspace/source/external/build/php-5.4.16-apache/Zend/zend_API.c:2308 #10 0x00007fbc913a8840 in zend_hash_apply_deleter (ht=0x7fbc91c50480, p=0x1d80420) at /workspace/source/external/build/php-5.4.16- apache/Zend/zend_hash.c:650 #11 0x00007fbc913a89db in zend_hash_graceful_reverse_destroy (ht=0x7fbc91c50480) at /workspace/source/external/build/php-5.4.16-apache/Zend/zend_hash.c:687 #12 0x00007fbc9139e01e in zend_destroy_modules () at /workspace/source/external/build/php-5.4.16-apache/Zend/zend_API.c:1832 #13 0x00007fbc91394fb2 in zend_shutdown () at /workspace/source/external/build/php-5.4.16-apache/Zend/zend.c:820 #14 0x00007fbc91302145 in php_module_shutdown () at /workspace/source/external/build/php-5.4.16-apache/main/main.c:2367 #15 0x00007fbc91302111 in php_module_shutdown_wrapper (sapi_globals=0x7fbc91c2c680) at /workspace/source/external/build/php-5.4.16- apache/main/main.c:2335 #16 0x00007fbc91440916 in php_apache_child_shutdown (tmp=0x0) at /workspace/source/external/build/php-5.4.16- apache/sapi/apache2handler/sapi_apache2.c:398 #17 0x00007fbc91c6ff2e in run_cleanups (pool=0x2310c08) at memory/unix/apr_pools.c:2352 #18 apr_pool_destroy (pool=0x2310c08) at memory/unix/apr_pools.c:814 #19 0x00000000004b8d0e in clean_child_exit (code=0) at prefork.c:196 #20 0x00000000004b9129 in child_main (child_num_arg=<value optimized out>) at prefork.c:692 #21 0x00000000004b9374 in make_child (s=0x1bf0c80, slot=12) at prefork.c:768 #22 0x00000000004b9fc7 in perform_idle_server_maintenance (_pconf=<value optimized out>, plog=<value optimized out>, s=<value optimized out>) at prefork.c:903 #23 ap_mpm_run (_pconf=<value optimized out>, plog=<value optimized out>, s= <value optimized out>) at prefork.c:1107 #24 0x000000000042e564 in main (argc=3, argv=0x7fff92dd5198) at main.c:753 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=65200&edit=1

« previous php.bugs (#180125) next »