<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>136124</bug_id>
          
          <creation_ts>2014-08-21 01:04:45 -0700</creation_ts>
          <short_desc>New tests introduced in r172794 fail on 32 bit platforms</short_desc>
          <delta_ts>2014-08-26 11:32:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>108645</blocked>
    
    <blocked>136056</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>clopez</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030468</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-08-21 01:04:45 -0700</bug_when>
    <thetext>The new tests fail on all 32 bit platforms.

Apple Mac 32 bit:
- before: http://build.webkit.org/builders/Apple%20Mavericks%2032-bit%20JSC%20%28BuildAndTest%29/builds/3679 (0 failures)
- after: http://build.webkit.org/builders/Apple%20Mavericks%2032-bit%20JSC%20%28BuildAndTest%29/builds/3679 (22 failures)
- failures: stress/for-in-tests.js and stress/for-in-base-reassigned-later-and-change-structure.js

EFL ARM Thumb2:
- before: http://build.webkit.sed.hu/builders/EFL%20ARMv7%20Linux%20Release%20%28Build%29/builds/5690 (165 failures)
- after: http://build.webkit.sed.hu/builders/EFL%20ARMv7%20Linux%20Release%20%28Build%29/builds/5691 (171 failures)
- only stress/for-in-base-reassigned-later-and-change-structure.js fails

EFL ARM Traditional:
- before: http://build.webkit.sed.hu/builders/EFL%20ARMv7%20Traditional%20Linux%20Release%20%28Build%29/builds/6372 (7 failures)
- after: http://build.webkit.sed.hu/builders/EFL%20ARMv7%20Traditional%20Linux%20Release%20%28Build%29/builds/6372 (13 failures)
- only stress/for-in-base-reassigned-later-and-change-structure.js fails</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030581</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-08-21 16:22:27 -0700</bug_when>
    <thetext>The failure occurs at:

(lldb) bt 15
* thread #1: tid = 0x64e02f, 0x008f8502 JavaScriptCore`WTFCrash + 50 at Assertions.cpp:329, queue = &apos;com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
    frame #0: 0x008f8502 JavaScriptCore`WTFCrash + 50 at Assertions.cpp:329
    frame #1: 0x003d82b8 JavaScriptCore`JSC::DFG::RegisterBank&lt;JSC::GPRInfo&gt;::allocate(this=0x028e2da8, spillMe=0xbfff8560) + 296 at DFGRegisterBank.h:138
    frame #2: 0x003b4305 JavaScriptCore`JSC::DFG::SpeculativeJIT::allocate(this=0x028e2a00) + 85 at DFGSpeculativeJIT.h:189
    frame #3: 0x003e1f0e JavaScriptCore`JSC::DFG::SpeculativeJIT::fillSpeculateCell(this=0x028e2a00, edge=Edge at 0xbfff8724) + 1422 at DFGSpeculativeJIT32_64.cpp:908
    frame #4: 0x003b3e31 JavaScriptCore`JSC::DFG::SpeculateCellOperand::gpr(this=0xbfffa450) + 193 at DFGSpeculativeJIT.h:3094
    frame #5: 0x004025fd JavaScriptCore`JSC::DFG::SpeculativeJIT::compile(this=0x028e2a00, node=0x06002788) + 107133 at DFGSpeculativeJIT32_64.cpp:4726
    frame #6: 0x003962e5 JavaScriptCore`JSC::DFG::SpeculativeJIT::compileCurrentBlock(this=0x028e2a00) + 1941 at DFGSpeculativeJIT.cpp:1449
    frame #7: 0x00396c22 JavaScriptCore`JSC::DFG::SpeculativeJIT::compile(this=0x028e2a00) + 226 at DFGSpeculativeJIT.cpp:1561
    frame #8: 0x00311250 JavaScriptCore`JSC::DFG::JITCompiler::compileBody(this=0xbfffdcc0) + 48 at DFGJITCompiler.cpp:113
    frame #9: 0x0031344d JavaScriptCore`JSC::DFG::JITCompiler::compileFunction(this=0xbfffdcc0) + 541 at DFGJITCompiler.cpp:349
    frame #10: 0x00381c47 JavaScriptCore`JSC::DFG::Plan::compileInThreadImpl(this=0x06f7b610, longLivedState=0x01d735a0) + 1815 at DFGPlan.cpp:297
    frame #11: 0x00381144 JavaScriptCore`JSC::DFG::Plan::compileInThread(this=0x06f7b610, longLivedState=0x01d735a0, threadData=0x00000000) + 436 at DFGPlan.cpp:162
    frame #12: 0x002cc09d JavaScriptCore`JSC::DFG::compileImpl(vm=0x020cd400, codeBlock=0x06f7ad40, profiledDFGCodeBlock=0x00000000, mode=DFGMode, osrEntryBytecodeIndex=85, mustHandleValues=0xbfffe828, callback=0xbfffe6b8) + 1853 at DFGDriver.cpp:104
    frame #13: 0x002cb8f2 JavaScriptCore`JSC::DFG::compile(vm=0x020cd400, codeBlock=0x06f7ad40, profiledDFGCodeBlock=0x00000000, mode=DFGMode, osrEntryBytecodeIndex=85, mustHandleValues=0xbfffe828, passedCallback=0xbfffe7e8) + 194 at DFGDriver.cpp:122
    frame #14: 0x00548b39 JavaScriptCore`operationOptimize(exec=0xbfffea08, bytecodeIndex=85) + 2793 at JITOperations.cpp:1196

(lldb) up
[0x0000000000000000 - 0x0000000000000151)
[0x0000000000000151 - 0x0000000000000288)
[0x0000000000000288 - 0x00000000000002b2)
[0x00000000000002b2 - 0x00000000000002bc)
[0x00000000000002bc - 0x0000000000005576)
frame #1: 0x003d82b8 JavaScriptCore`JSC::DFG::RegisterBank&lt;JSC::GPRInfo&gt;::allocate(this=0x028e2da8, spillMe=0xbfff8560) + 296 at DFGRegisterBank.h:138
   135 	        }
   136 	
   137 	        // Deadlock check - this could only occur is all registers are locked!
-&gt; 138 	        ASSERT(currentLowest != NUM_REGS &amp;&amp; currentSpillOrder != SpillHintInvalid);
   139 	        // There were no available registers; currentLowest will need to be spilled.
   140 	        return allocateInternal(currentLowest, spillMe);
   141 	    }

(lldb) p currentLowest
(uint32_t) $0 = 6

(lldb) p currentSpillOrder
(SpillHint) $1 = 4294967295

(lldb) p/x currentSpillOrder
(SpillHint) $2 = 0xffffffff

The comment explains the crash: &quot;this could only occur is all registers are locked!&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030582</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-08-21 16:22:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/18095915&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031380</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-08-26 08:29:22 -0700</bug_when>
    <thetext>This issue has been fix in https://bugs.webkit.org/show_bug.cgi?id=136165 and https://bugs.webkit.org/show_bug.cgi?id=136187.  Closing as a dup.

*** This bug has been marked as a duplicate of bug 136165 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031408</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-08-26 10:56:30 -0700</bug_when>
    <thetext>Reopen, because https://trac.webkit.org/changeset/172959 fixes 
only X86, but not ARM Traditional and ARM Thumb2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031427</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-08-26 11:32:25 -0700</bug_when>
    <thetext>This defect is really a duplicate or covered by two other defects. &lt;https://bugs.webkit.org/show_bug.cgi?id=136165&gt; - &quot;REGRESSION(r172794) + 32Bit build: ASSERT failures in for-in-tests.js tests.&quot; and &lt;https://bugs.webkit.org/show_bug.cgi?id=136187&gt; - &quot;REGRESSION(r172794) + 32Bit build: for-in-base-reassigned-later-and-change-structure.js fail with NaN result&quot;.

The fix for 136165 was landed in change set r172959: &lt;http://trac.webkit.org/changeset/172959&gt;
The fix for 136187 was landed in change set r172962: &lt;http://trac.webkit.org/changeset/172962&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>