ID: 32751 User updated by: prism at pld-linux dot org Reported By: prism at pld-linux dot org -Status: Feedback +Status: Open Bug Type: Zend Engine 2 problem Operating System: PLD Linux Distribution PHP Version: 5.0.4 New Comment:
I did't try in other OS. Later, I'll see in Windows - but I have to set up the environment first. Yes. I used glibc 2.3.4 before, and switched to 2.3.5 to see if it helps. It also happened earlier, when I had some older glibc, but I ignored it. The code also fails in CLI. Actually, we test it in CLI because Apache doesn't get any output from PHP module since it dies - proxy says that zero-sized reply comes. And finally: Yes, we build as much we can as modules to package it into separate packages. Previous Comments: ------------------------------------------------------------------------ [2005-04-19 22:23:38] [EMAIL PROTECTED] Are you able to reproduce it under a different OS? Or at least with different glibc? Is it reproducible only with Apache2 or with CLI too? As far as I can see, mysql is built as shared module or am I wrong? ------------------------------------------------------------------------ [2005-04-19 21:20:11] prism at pld-linux dot org What else do you need? You have been given exact cause and explanation what to fix. Let me know if we can still give you some more information. ------------------------------------------------------------------------ [2005-04-19 08:51:00] [EMAIL PROTECTED] Not enough information was provided for us to be able to handle this bug. Please re-read the instructions at http://bugs.php.net/how-to-report.php If you can provide more information, feel free to add it to this bug and change the status back to "Open". Thank you for your interest in PHP. ------------------------------------------------------------------------ [2005-04-18 21:49:05] prism at pld-linux dot org Description: ------------ Zend engine or all modules which use persistent_list. persistent_list is destroyed after modules are unloaded. But some modules register own destructors for elements put on persistent_list. When Zend destroys such entry from persistent_list, it tries to call destructor from unloaded module and segfaults. Reproduce code: --------------- Look here: http://comments.gmane.org/gmane.linux.pld.devel.english/785 and start reading from post written at 16 Apr 17:33 by Michal Lukaszek, and below from that. Expected result: ---------------- No segfault. Actual result: -------------- > (gdb) bt > #0 0xb78a6978 in ?? () > #1 0xb7f557da in plist_entry_destructor (ptr=0x81e11b8) > at /home/comp/rpm/BUILD/php-5.0.4/Zend/zend_list.c:204 > #2 0xb7f5385f in zend_hash_apply_deleter (ht=0x8052c50, p=0x81ec1a0) > at /home/comp/rpm/BUILD/php-5.0.4/Zend/zend_hash.c:574 > #3 0xb7f53ab0 in zend_hash_graceful_reverse_destroy (ht=0x8052c50) > at /home/comp/rpm/BUILD/php-5.0.4/Zend/zend_hash.c:640 > #4 0xb7f558f6 in zend_destroy_rsrc_list (ht=0x8052c50, tsrm_ls=0x804f0a0) > at /home/comp/rpm/BUILD/php-5.0.4/Zend/zend_list.c:234 > #5 0xb7f49c20 in zend_shutdown (tsrm_ls=0x804f0a0) > at /home/comp/rpm/BUILD/php-5.0.4/Zend/zend.c:714 > #6 0xb7ef42d5 in php_module_shutdown (tsrm_ls=0x804f0a0) > at /home/comp/rpm/BUILD/php-5.0.4/main/main.c:1518 > #7 0x0804be1e in main (argc=2, argv=0xbffff174) > at /home/comp/rpm/BUILD/php-5.0.4/sapi/cli/php_cli.c:1055 > (gdb) f 1 > #1 0xb7f557da in plist_entry_destructor (ptr=0x81e11b8) > at /home/comp/rpm/BUILD/php-5.0.4/Zend/zend_list.c:204 > 204 ld->plist_dtor_ex(le TSRMLS_CC); > (gdb) p ld->plist_dtor_ex > $1 = 0xb78a6978 > (gdb) x ld->plist_dtor_ex > 0xb78a6978: Cannot access memory at address 0xb78a6978 it's in (unloaded) php-mysql module > The list here is "persistent_list", which is used by php-mysql for > persistent connection - so it's probably bug in php-mysql module or php > engine itself. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=32751&edit=1