<?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>155537</bug_id>
          
          <creation_ts>2016-03-16 03:49:42 -0700</creation_ts>
          <short_desc>[ARM] REGRESSION(r198235): 12000 JSC stress tests started to crash on ARMv7 Thumb2 Linux platforms</short_desc>
          <delta_ts>2016-04-13 01:27:44 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>108645</blocked>
    
    <blocked>155508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jh718.park</cc>
    
    <cc>mark.lam</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1175327</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-16 03:49:42 -0700</bug_when>
    <thetext>GTK Linux ARM Release
----------------------
- r198228
- Failed 111 jsc tests
- https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/10571

- r198253
- Failed 12070 jsc tests
- https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/10570

EFL Linux ARMv7 Thumb2 Release
-------------------------------
- r198208
- Failed 18 jsc tests
- https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/17500

- r198268
- Failed 12049 jsc tests
- https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/17502

This regression occured between r198229-r198252. As far as I see, in this interval 
https://trac.webkit.org/changeset/198235 is the only one major JSC change which 
could cause this regression. I&apos;ll bisect it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175331</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-16 06:06:39 -0700</bug_when>
    <thetext>Bisect finished, http://trac.webkit.org/changeset/198235 is the culprit.

- r198234
- https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/17504
- 22 JSC tests failed

- r198241
- https://build.webkit.org/builders/EFL%20Linux%20ARMv7%20Thumb2%20Release/builds/17505
- zillion failures

( I just reported this regression and don&apos;t have time to work 
on it. If somebody is interested in it, feel free to pick it up. )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175346</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2016-03-16 07:36:18 -0700</bug_when>
    <thetext>Sorry will look at this in 30-40 minutes. Very confused :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175347</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2016-03-16 07:37:49 -0700</bug_when>
    <thetext>Sorry will look at this in 30-40 minutes. Very confused. Are there any stack traces?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175384</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2016-03-16 10:18:12 -0700</bug_when>
    <thetext>Your ARM build uses the on demand allocator, right?

I wonder if there&apos;s a bug in my control logic for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175386</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-16 10:19:41 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Your ARM build uses the on demand allocator, right?
Yes.

&gt; I wonder if there&apos;s a bug in my control logic for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175389</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2016-03-16 10:20:53 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Your ARM build uses the on demand allocator, right?
&gt; Yes.
&gt; 
&gt; &gt; I wonder if there&apos;s a bug in my control logic for this.

Are you able to make you test bot actually produce stack traces? This is very peculiar</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175390</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2016-03-16 10:22:05 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; Your ARM build uses the on demand allocator, right?
&gt; &gt; Yes.
&gt; &gt; 
&gt; &gt; &gt; I wonder if there&apos;s a bug in my control logic for this.
&gt; 
&gt; Are you able to make you test bot actually produce stack traces? This is
&gt; very peculiar

(Note, i am looking at this, a stack trace would just make it easier to work out where it&apos;s all going horribly wrong :-O)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175391</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2016-03-16 10:26:45 -0700</bug_when>
    <thetext>Hmmm. Ossy, do you have build access for that configuration atm?

I&apos;d be interested in knowing what happens in 
#else // ENABLE(EXECUTABLE_ALLOCATOR_FIXED)
static inline void* writeToExecutableRegion(void *dst, const void *src, size_t n)
{
    return memcpy(dst, src, n);
}
#endif

if you put an
ASSERT(((intptr_t)dst) &amp; 1);

before the memcpy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175395</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-16 10:35:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Hmmm. Ossy, do you have build access for that configuration atm?
&gt; 
&gt; I&apos;d be interested in knowing what happens in 
&gt; #else // ENABLE(EXECUTABLE_ALLOCATOR_FIXED)
&gt; static inline void* writeToExecutableRegion(void *dst, const void *src,
&gt; size_t n)
&gt; {
&gt;     return memcpy(dst, src, n);
&gt; }
&gt; #endif
&gt; 
&gt; if you put an
&gt; ASSERT(((intptr_t)dst) &amp; 1);
&gt; 
&gt; before the memcpy

Yes, I&apos;ll try it. But unfortunately the cross compiling and 
test running is quite slow, it will take at least 15-20 minutes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177338</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-03-23 06:31:10 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Hmmm. Ossy, do you have build access for that configuration atm?
&gt; 
&gt; I&apos;d be interested in knowing what happens in 
&gt; #else // ENABLE(EXECUTABLE_ALLOCATOR_FIXED)
&gt; static inline void* writeToExecutableRegion(void *dst, const void *src,
&gt; size_t n)
&gt; {
&gt;     return memcpy(dst, src, n);
&gt; }
&gt; #endif
&gt; 
&gt; if you put an
&gt; ASSERT(((intptr_t)dst) &amp; 1);
&gt; 
&gt; before the memcpy

I think you meant the negated condition. It wasn&apos;t easy, because
there are many assertions on ARMv7 due to bug154857. But I managed
to use release assert instead of, but it didn&apos;t hit on the tests
which crashed due to this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183364</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-04-13 01:27:44 -0700</bug_when>
    <thetext>The original and fixed change was relanded and there is no similar issue now.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>