ID: 11218 Updated by: zeev Reported By: [EMAIL PROTECTED] Old-Status: Open Status: Feedback Bug Type: Scripting Engine problem Operating system: PHP Version: 4.0.5 Assigned To: Comments: I was unable to reproduce that problem, however, I did fix bug #10911 which appears to be based on the same issue. Can you please test the latest CVS and see whether it solves your problem (note, this fix may not be a part of 4.0.6, since 4.0.6 has already been packaged; It'll definitely be in 4.0.7) Previous Comments: --------------------------------------------------------------------------- [2001-06-05 17:20:08] [EMAIL PROTECTED] Bug 10911, http://www.php.net/bugs.php?id=10911, was brought to my attention. Both my report above and this other one may be based on the same bug. --------------------------------------------------------------------------- [2001-05-31 12:33:40] [EMAIL PROTECTED] <?php # The problem child... function Test($FileName, $FileLine, $Opt='', $Col='') { for ($Counter = 0; $Counter < 3; $Counter++) { echo '<br />in for '; if ( isset($Col['SC']['hide']) ) { echo 'in if'; } } } Test(__FILE__,__LINE__); # NOW, funny things happen if I change the number of times # the for loop runs... # $Counter < 1... # Everything is fine. # $Counter < 2... # Dr Watson notifys of PHP crash, hit OK # (SeeDr Watson report at end of this posting.) # Text is displayed in browser. # PHP no longer running. # $Counter < 3... # Nothing returned to browser. # No Dr Watson reports. # PHP won't stop executing, takes up 99% of processor time. # Can't "End Process" in Task Manger. # Doesn't stop after max execution time. # Need to reboot to kill PHP process. # # Though, if I execute from command line... # winds up in same infinite loop, but I can # kill the PHP process from the task manager. # So, if that's not strange enough, altering the # test code in small ways eliminates the problem... # remove if / isset segment... # okay /* function Test($FileName, $FileLine, $Opt='', $Col='') { for ($Counter = 0; $Counter < 3; $Counter++) { echo '<br />in for '; } } Test(__FILE__,__LINE__); */ # put the if / isset segment back # BUT remove the for loop.... # okay /* function Test($FileName, $FileLine, $Opt='', $Col='') { if ( isset($Col['SC']['hide']) ) { echo 'in if'; } } Test(__FILE__,__LINE__); */ # put the for loop back # BUT do isset on a single dimensional array... # okay /* function Test($FileName, $FileLine, $Opt='', $Col='') { for ($Counter = 0; $Counter < 3; $Counter++) { echo '<br />in for '; if ( isset($Col['SC']) ) { echo 'in if'; } } } Test(__FILE__,__LINE__); */ # perform tasks outside a function. # okay /* for ($Counter = 0; $Counter < 3; $Counter++) { echo '<br />in for '; if ( isset($Col['SC']['hide']) ) { echo 'in if'; } } */ # set the array before running function # okay /* $Var['SC']['hide'] = 'y'; function Test($FileName, $FileLine, $Opt='', $Col='') { for ($Counter = 0; $Counter < 3; $Counter++) { echo '<br />in for '; if ( isset($Col['SC']['hide']) ) { echo 'in if'; } } } Test(__FILE__,__LINE__,'',$Var); */ # Set a single dimensional array, # though continue to perform isset on a two dimensional # Doesn't crash # --> _BUT_ the "if isset()" test comes out as TRUE # --> even when it's actually FALSE! /* unset($Var); $Var['SC'] = 'y'; function Test($FileName, $FileLine, $Opt='', $Col='') { for ($Counter = 0; $Counter < 3; $Counter++) { echo '<br />in for '; if ( isset($Col['SC']['hide']) ) { echo 'in if'; } } } Test(__FILE__,__LINE__,'',$Var); */ # Set variable to a string... # okay /* $Var = 'y'; function Test($FileName, $FileLine, $Opt='', $Col='') { for ($Counter = 0; $Counter < 3; $Counter++) { echo '<br />in for '; if ( isset($Col['SC']['hide']) ) { echo 'in if'; } } } Test(__FILE__,__LINE__,'',$Var); */ /* Application exception occurred: App: (pid=212) When: 5/31/2001 @ 11:59:23.314 Exception number: c0000005 (access violation) *----> System Information <----* Computer Name: BASE User Name: SYSTEM Number of Processors: 1 Processor Type: x86 Family 6 Model 3 Stepping 4 Windows Version: 4.0 Current Build: 1381 Service Pack: 6 Current Type: Uniprocessor Free Registered Organization: Analysis and Solutions Company Registered Owner: Daniel Convissor *----> Task List <----* 0 Idle.exe 2 System.exe 20 SMSS.exe 24 CSRSS.exe 34 winlogon.exe 40 SERVICES.exe 43 LSASS.exe 66 SPOOLSS.exe 73 Apache.exe 80 mysqld-nt.exe 82 Apache.exe 137 RPCSS.exe 153 vsmon.exe 165 minilog.exe 189 NDDEAGNT.exe 42 EXPLORER.exe 186 LOADWC.exe 166 zonealarm.exe 182 NOTEPAD.exe 183 netscape.exe 212 php.exe 218 DRWTSN32.exe 0 _Total.exe (00400000 - 00400000) (77f60000 - 77fbe000) dllntdll.dbg (10000000 - 10000000) (77f00000 - 77f5e000) dllkernel32.dbg (77e70000 - 77ec5000) dlluser32.dbg (77ed0000 - 77efc000) dllgdi32.dbg (77dc0000 - 77dff000) dlladvapi32.dbg (77e10000 - 77e67000) dllrpcrt4.dbg (776d0000 - 776d8000) dllwsock32.dbg (776b0000 - 776c4000) dllws2_32.dbg (78000000 - 78046000) (776a0000 - 776a7000) dllws2help.dbg (77b20000 - 77bd7000) dllole32.dbg (65340000 - 653d2000) oleaut32.dbg (04a50000 - 04a8c000) odbc32.DBG (71700000 - 7178a000) COMCTL32.dbg (77c40000 - 77d7c000) dllshell32.dbg (77d80000 - 77db2000) dllcomdlg32.dbg (77a90000 - 77a9b000) dllversion.dbg (779c0000 - 779c8000) dlllz32.dbg (780a0000 - 780b2000) (04a00000 - 04a00000) State Dump for Thread Id 0xd7 eax=00570720 ebx=00536d70 ecx=0000005b edx=00000000 esi=00570300 edi=00536d70 eip=1008999a esp=0012fe7c ebp=00000004 iopl=0 nv up ei pl zr na po nc cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000246 function: <nosymbols> 10089983 eb17 jmp 1008999c 10089985 85c0 test eax,eax 10089987 740c jz 10089995 10089989 3b7704 cmp esi,[edi+0x4] ds:01455776=???????? 1008998c 7507 jnz 10089995 1008998e 8b0e mov ecx,[esi] ds:00570300=00570720 10089990 894f04 mov [edi+0x4],ecx ds:01455776=???????? 10089993 eb07 jmp 1008999c 10089995 8b5604 mov edx,[esi+0x4] ds:0148ed06=???????? 10089998 8b06 mov eax,[esi] ds:00570300=00570720 FAULT ->1008999a 8902 mov [edx],eax ds:00000000=???????? 1008999c 8b06 mov eax,[esi] ds:00570300=00570720 1008999e 85c0 test eax,eax 100899a0 7406 jz 100899a8 100899a2 8b4e04 mov ecx,[esi+0x4] ds:0148ed06=???????? 100899a5 894804 mov [eax+0x4],ecx ds:0148f126=???????? 100899a8 a1688c0f10 mov eax,[100f8c68] ds:100f8c68=00000000 100899ad 85c0 test eax,eax 100899af 745c jz 10089a0d 100899b1 ffd0 call eax 100899b3 5f pop edi 100899b4 5e pop esi *----> Stack Back Trace <----* FramePtr ReturnAd Param#1 Param#2 Param#3 Param#4 Function Name 00000004 00000000 00000000 00000000 00000000 00000000 <nosymbols> *----> Raw Stack Dump <----* 0012fe7c a4 99 53 00 10 03 57 00 - 5f 9d 08 10 10 03 57 00 ..S...W._.....W. 0012fe8c 34 42 02 78 54 13 54 00 - bc fe 12 00 01 00 00 00 4B.xT.T......... 0012fe9c 33 27 00 10 00 00 00 00 - 00 00 00 00 20 00 54 00 3'.......... .T. 0012feac c0 17 54 00 20 00 54 00 - f0 32 54 00 20 12 54 00 ..T. .T..2T. .T. 0012febc 4c ff 12 00 bf 1a 40 00 - 00 00 00 00 00 00 00 00 L.....@......... 0012fecc 00 00 00 00 00 f0 fd 7f - 00 00 00 00 00 00 00 00 ................ 0012fedc 04 00 00 00 00 00 00 00 - 00 cd 00 78 e8 3c 13 00 ...........x.<.. 0012feec 40 ce 03 78 00 f0 fd 7f - 1d 00 00 00 90 02 54 00 @..x..........T. 0012fefc 34 ff 12 00 03 6f f6 77 - 60 04 57 00 00 00 00 00 4....o.w`.W..... 0012ff0c 30 03 57 00 00 ff ff ff - 00 00 00 00 01 00 00 00 0.W............. 0012ff1c 00 00 00 00 01 00 00 00 - 90 02 54 00 00 f0 fd 7f ..........T..... 0012ff2c 00 00 00 00 20 00 54 00 - 20 12 54 00 f0 32 54 00 .... .T. .T..2T. 0012ff3c 01 00 00 00 00 00 00 00 - 00 00 00 00 c0 17 54 00 ..............T. 0012ff4c c0 ff 12 00 cb 20 40 00 - 01 00 00 00 90 02 54 00 ..... @.......T. 0012ff5c 90 0c 54 00 00 40 40 00 - 04 40 40 00 a4 ff 12 00 ..T..@@..@@..... 0012ff6c 94 ff 12 00 a0 ff 12 00 - 00 00 00 00 98 ff 12 00 ................ 0012ff7c 08 40 40 00 0c 40 40 00 - 00 00 00 00 00 00 00 00 .@@..@@......... 0012ff8c 00 f0 fd 7f 05 00 00 c0 - 90 02 54 00 00 00 00 00 ..........T..... 0012ff9c a1 c2 11 80 90 0c 54 00 - 01 00 00 00 84 ff 12 00 ......T......... 0012ffac c4 fc 12 00 e0 ff 12 00 - 20 21 40 00 50 31 40 00 ........ !@.P1@. State Dump for Thread Id 0xd5 eax=00007530 ebx=00000000 ecx=000000d7 edx=00000000 esi=77e726e5 edi=00c5ff6c eip=77e72397 esp=00c5ff24 ebp=00c5ff48 iopl=0 nv up ei pl zr na po nc cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000246 function: InvalidateRect 77e7237e b89e110000 mov eax,0x119e 77e72383 8d542404 lea edx,[esp+0x4] ss:01b7e92b=???????? 77e72387 cd2e int 2e 77e72389 c20c00 ret 0xc 77e7238c b885110000 mov eax,0x1185 77e72391 8d542404 lea edx,[esp+0x4] ss:01b7e92b=???????? 77e72395 cd2e int 2e 77e72397 c21400 ret 0x14 *----> Stack Back Trace <----* FramePtr ReturnAd Param#1 Param#2 Param#3 Param#4 Function Name 00c5ff48 10093e95 00c5ff6c 00000000 00000000 00000000 user32!InvalidateRect */ ?> --------------------------------------------------------------------------- The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online. ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=11218&edit=2 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]