#46656 [Opn]: Crash on array allocation/gc

From: Date: Tue, 09 Dec 2008 03:05:15 +0000
Subject: #46656 [Opn]: Crash on array allocation/gc
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-131790@lists.php.net to get a copy of this message
ID: 46656 User updated by: ezyang@php.net Reported By: ezyang@php.net Status: Open Bug Type: Reproducible crash Operating System: win32 only - Windows Vista PHP Version: 5.3CVS-2008-11-24 (snap) New Comment: Some new information about reproducing: I have been able to reproduce on another machine, but not without a little bit of coaxing. In particular, these conditions must be met: * PHPT tests must be set up. If they are skipped, the segfault does not occur. * php tests/index.php --flush must be run with a PHP 5.2 version, prior to running php tests/index.php with a PHP 5.3 snap. The segfault does not occur on a cold run of the test suite. It might be possible to reproduce on Linux; I'm currently reconstructing the experimental setup and will report back. Previous Comments: ------------------------------------------------------------------------ [2008-11-25 17:49:07] ezyang@php.net Nope, I cannot reproduce on the latest 5.3 snap on Ubuntu Linux Intrepid. ------------------------------------------------------------------------ [2008-11-25 08:37:04] jani@php.net Can you reproduce this on a real OS, like some Linux for example? ------------------------------------------------------------------------ [2008-11-24 00:38:39] ezyang@php.net Description: ------------ I am getting a crash on the following code: class SimpleMock { // ... function SimpleMock() { $this->actions = new SimpleCallSchedule(); $this->expectations = new SimpleCallSchedule(); $this->call_counts = array(); $this->expected_counts = array(); // here $this->max_counts = array(); $this->expected_args = array(); $this->expected_args_at = array(); $this->getCurrentTestCase()->tell($this); } Which is quite strange, because allocating an array shouldn't cause a crash! Here is the stack dump: Thread 0 - System ID 4752 Entry point php+2af2 Create time 11/23/2008 7:29:25 PM Time spent in user mode 0 Days 0:0:3.73 Time spent in kernel mode 0 Days 0:0:1.669 Function Arg 1 Arg 2 Arg 3 Source php5!zend_hash_apply+5 00000000 1008ff40 1008fe0d php5!gc_collect_cycles+2fc 04895474 00c0eb10 04ab4898 php5!gc_collect_cycles+24d 04ab0ab8 04ab4898 105286f0 php5!gc_collect_cycles+4b 04ab4898 1008cfaa 04ab4898 php5!gc_zval_possible_root+ce 00000000 00000000 00000000 PHP5!ZEND_HASH_APPLY+5WARNING - DebugDiag was not able to locate debug symbols for php5.dll, so the information below may be incomplete. In php__PID__4896__Date__11_23_2008__Time_07_30_05PM__248__Second_Chance_Exception_C0000005.dmp the assembly instruction at php5!zend_hash_apply+5 in C:\Software\PHP\versions\5.3.0alpha3-dev\php5.dll from The PHP Group has caused an access violation exception (0xC0000005) when trying to read from memory location 0x00000026 on thread 0 I might be doing something wrong with regards to setting up the backtrace, since it's complaining about php5.dll even though I do have php5.dbg in my path. If you need a better backtrace, I can see what I can do. If you're interested in attempting to reproduce this, the configuration is fairly standard. Use the instructions here <http://htmlpurifier.org/contribute.html> to setup the HTML Purifier development environment, and run the full test suite. (It doesn't work if you try to run just the test that PHP dies on, or try to run it by parts.) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46656&edit=1

« previous php.bugs (#131790) next »