php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #56885 APC crash on caching code containing $x->y = "z"
Submitted: 2006-03-09 05:18 UTC Modified: 2006-03-09 18:29 UTC
From: me at contents dot nl Assigned:
Status: Closed Package: apc (PECL)
PHP Version: 5.1.2 OS: Win 32
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: me at contents dot nl
New email:
PHP Version: OS:

 

 [2006-03-09 05:18 UTC] me at contents dot nl
Description:
------------
APC crashes APC when the code includes a line $x->y = "z", but only if this codeline is withing a class method. No crash occurs when its in a function. It also doesn't crash when assigning through another variable:
$q = "z";
$x->y = $q;


On the first request the code executes just fine, on any subsequent request it crashes apache (1.3.33). APC 3.0.9-dev from pecl4win, php 5.1.2

Reproduce code:
---------------
<?php
class A {
  public $y;
}
class B {
  function doit() {
    $x = new A();
    $x->y = "z";
  }
}
echo "hello world";
?>

Expected result:
----------------
hello world

Actual result:
--------------
crash

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-03-09 05:25 UTC] me at contents dot nl
updated php version
 [2006-03-09 11:32 UTC] gopalv82 at yahoo dot com
Any backtraces ?.

Because this seems to work for me on php 5.1.2 on Freebsd 4. Of course, I'm using the latest CVS of APC.
 [2006-03-09 13:12 UTC] me at contents dot nl
I don't think its very usefull, since I don't have a symbols file for php_apc:

	php5ts.dll!zend_is_auto_global(char * name=0x013b2f84, unsigned int name_len=1, void * * * tsrm_ls=0x00b87d30)  Line 3955 + 0x1d bytes	C
 	php_apc.dll!00b8486e() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for php_apc.dll]	
 	php_apc.dll!00b8491b() 	
 	php_apc.dll!00b8494b() 	
 	php_apc.dll!00b82e4c() 	
 	php_apc.dll!00b849e7() 	
 	php_apc.dll!00b85e98() 	
 	php_apc.dll!00b85df3() 	
 	php_apc.dll!00b85a00() 	
 	php5ts.dll!zend_execute_scripts(int type=8, void * * * tsrm_ls=0x00f6a148, _zval_struct * * retval=0x00000000, int file_count=3, ...)  Line 1101 + 0xa bytes	C
 	php5ts.dll!php_execute_script(_zend_file_handle * primary_file=0x0126fdcc, void * * * tsrm_ls=0x00f6a148)  Line 1719 + 0x12 bytes	C
 	php5apache.dll!apache_php_module_main(request_rec * r=0x00ffc3b0, int display_source_mode=0, void * * * tsrm_ls=0x00f6a148)  Line 53 + 0x1b bytes	C
 	php5apache.dll!send_php(request_rec * r=0x00ffc3b0, int display_source_mode=0, char * filename=0x00ffcf40)  Line 662 + 0xb bytes	C
 	php5apache.dll!send_parsed_php(request_rec * r=0x00ffc3b0)  Line 676 + 0xe bytes	C
 	ApacheCore.dll!6ff64bc7() 	
 	ApacheCore.dll!6ff74a73() 	
 	ApacheCore.dll!6ff74746() 	
 	ApacheCore.dll!6ff6be0f() 	
 	ws2_32.dll!71a33a91() 	
 	ApacheCore.dll!6ff6bc5a() 	
 	msvcrt.dll!77c0a3b0() 	
 	ws2_32.dll!71a33a91() 	
 	ws2_32.dll!71a387a9() 	
 	kernel32.dll!7c80b50b() 	
 	ws2_32.dll!71a33a91() 	
 	ws2_32.dll!71a387a9() 	
 	kernel32.dll!7c8399f3()
 [2006-03-09 14:19 UTC] me at contents dot nl
a new backtrace with php_apc symbols:

	php5ts.dll!zend_is_auto_global(char * name=0x013b2f84, unsigned int name_len=1, void * * * tsrm_ls=0x00d5b3f6)  Line 3955 + 0x21 bytes	C
 	php_apc.dll!my_fetch_global_vars(_zend_op_array * src=0x066bbe88, void * * * tsrm_ls=0x00d5b3f6)  Line 1802 + 0x1a bytes	C
 	php_apc.dll!apc_copy_function_for_execution(_zend_function * src=0x013b2b0c, void * * * tsrm_ls=0x00d5b3f6)  Line 1830 + 0xd bytes	C
 	php_apc.dll!apc_copy_function_for_execution_ex(void * dummy=0x00000000, _zend_function * src=0x013b2b0c, void * * * tsrm_ls=0x00d5b3f6)  Line 1841 + 0xd bytes	C
 	php_apc.dll!my_copy_hashtable_ex(_hashtable * dst=0x066bbc5c, _hashtable * src=0x013b2950, void * (void *, void *, void * (unsigned int)*, void (void *)*)* copy_fn=0x00d5a294, void (void *, void (void *)*)* free_fn=0x00000000, int holds_ptrs=0, void * (unsigned int)* allocate=0x00d5b3f6, void (void *)* deallocate=0x00d5ae88, int (bucket *, char *)* check_fn=0x00000000, ...)  Line 931 + 0x16 bytes	C
 	php_apc.dll!apc_copy_class_entry_for_execution(_zend_class_entry * src=0x013b2934, int is_derived=0)  Line 1875 + 0x28 bytes	C
 	php_apc.dll!install_class(apc_class_t cl={...}, void * * * tsrm_ls=0x0114f370)  Line 109 + 0xd bytes	C
 	php_apc.dll!cached_compile(void * * * tsrm_ls=0x0114f370)  Line 190 + 0x38 bytes	C
 	php_apc.dll!my_compile_file(_zend_file_handle * h=0x034afdcc, int type=2, void * * * tsrm_ls=0x0114f370)  Line 253 + 0x9 bytes	C
 	php5ts.dll!zend_execute_scripts(int type=8, void * * * tsrm_ls=0x0114f370, _zval_struct * * retval=0x00000000, int file_count=3, ...)  Line 1101 + 0xa bytes	C
 	php5ts.dll!php_execute_script(_zend_file_handle * primary_file=0x034afdcc, void * * * tsrm_ls=0x0114f370)  Line 1719 + 0x12 bytes	C
 	php5apache.dll!apache_php_module_main(request_rec * r=0x01151620, int display_source_mode=0, void * * * tsrm_ls=0x0114f370)  Line 53 + 0x1b bytes	C
 	php5apache.dll!send_php(request_rec * r=0x01151620, int display_source_mode=0, char * filename=0x01152190)  Line 662 + 0xb bytes	C
 	php5apache.dll!send_parsed_php(request_rec * r=0x01151620)  Line 676 + 0xe bytes	C
 	ApacheCore.dll!6ff64bc7() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for ApacheCore.dll]
 [2006-03-09 16:46 UTC] edink at emini dot dk
Having auto_globals_jit = off in php.ini and commenting out calls to my_fetch_global_vars() in apc_compile.c makes this problem disappear on Windows.
 [2006-03-09 18:29 UTC] edink at emini dot dk
This bug has been fixed in CVS.

In case this was a documentation problem, the fix will show up at the
end of next Sunday (CET) on pecl.php.net.

In case this was a pecl.php.net website problem, the change will show
up on the website in short time.
 
Thank you for the report, and for helping us make PECL better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 26 21:01:28 2024 UTC