Closed Bug 1183324 Opened 7 years ago Closed 7 years ago

Intermittent jsreftest.html?test=js1_8_5/extensions/recursion.js | load failed: null


(Core :: JavaScript Engine, defect)

Not set



Tracking Status
firefox40 --- fixed
firefox41 --- fixed
firefox42 --- fixed
firefox-esr31 --- unaffected
firefox-esr38 --- fixed


(Reporter: ryanvm, Assigned: jonco)



(Keywords: intermittent-failure)


(1 file)

Some other recent occurrences got starred as bug 1159096, but this is quite obviously a new issue that should be tracked on its own.

13:16:33 INFO - REFTEST TEST-START | file:///builds/slave/test/build/tests/jsreftest/tests/jsreftest.html?test=js1_8_5/extensions/recursion.js
13:16:33 INFO - REFTEST TEST-LOAD | file:///builds/slave/test/build/tests/jsreftest/tests/jsreftest.html?test=js1_8_5/extensions/recursion.js | 3141 / 6936 (45%)
13:16:33 INFO - TEST-INFO | 622167: Handle infinite recursion
13:21:35 INFO - TEST-INFO | All tests passed!
13:21:35 INFO - REFTEST TEST-UNEXPECTED-FAIL | load failed with unknown reason
13:21:35 INFO - REFTEST TEST-UNEXPECTED-FAIL | file:///builds/slave/test/build/tests/jsreftest/tests/jsreftest.html?test=js1_8_5/extensions/recursion.js | load failed: null
13:21:35 INFO - REFTEST INFO | Saved log: START file:///builds/slave/test/build/tests/jsreftest/tests/jsreftest.html?test=js1_8_5/extensions/recursion.js
13:21:35 INFO - REFTEST INFO | Loading a blank page
13:21:35 INFO - REFTEST TEST-END | file:///builds/slave/test/build/tests/jsreftest/tests/jsreftest.html?test=js1_8_5/extensions/recursion.js
Flags: needinfo?(jcoppeard)
In all these instances the failure occurs between 5 minutes and 5 minutes 30 seconds after the start of the test.  Passing instances of this test take between 4:30 and 4:50, so it looks like we're occasionally hitting the 5 minute timeout here.

We already skip this test on MacOSX and Android debug builds because it takes too long.  Maybe we should always skip it on MacOSX.
Component: JavaScript: GC → JavaScript Engine
Flags: needinfo?(jcoppeard)
See Also: → 1185731
This test is testing infinite recursion.  In the shell we get to a depth of about 770 before we get an error, but in the browser it's about 2700.  In the second part of the test we perform a GC on exit from every invocation of test() and that's what's causing this to take so long.

This patch changes the test to only GC when we hit the recursion limit.  I think this preserves the original behaviour of the test which was to trace everything when hit the limit.  This also means we can re-enable the test everywhere.
Assignee: nobody → jcoppeard
Attachment #8637255 - Flags: review?(terrence)
Comment on attachment 8637255 [details] [diff] [review]

Review of attachment 8637255 [details] [diff] [review]:

Wow, great find!

::: js/src/tests/js1_8_5/extensions/recursion.js
@@ +43,5 @@
>      {
>        for (var i in f());
>      }
> +    catch (e)
> +    { 

Extra whitespace.
Attachment #8637255 - Flags: review?(terrence) → review+
Closed: 7 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
You need to log in before you can comment on or make changes to this bug.