Closed
Bug 1108145
Opened 10 years ago
Closed 10 years ago
Crash [@ js::jit::BaselineScript::anyKindICEntryFromPCOffset]
Categories
(Core :: JavaScript Engine: JIT, defect)
Tracking
()
RESOLVED
FIXED
mozilla37
People
(Reporter: gkw, Assigned: shu)
References
Details
(Keywords: crash, regression, testcase, Whiteboard: [jsbugmon:update,testComment=10,origRev=18188c19a3c3])
Crash Data
Attachments
(2 files, 1 obsolete file)
3.48 KB,
text/plain
|
Details | |
5.03 KB,
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
// Randomly chosen test: js/src/jit-test/tests/basic/testIncDecReadOnly.js
Object.defineProperty(this, "x", { value: 0 });
// Randomly chosen test: js/src/jit-test/tests/ion/bug674664-2.js
timeout(0.01);
// Randomly chosen test: js/src/jit-test/tests/debug/onExceptionUnwind-05.js
g = newGlobal();
g.parent = this;
g.eval("Debugger(parent).onExceptionUnwind = function(){};");
// Randomly chosen test: js/src/jit-test/tests/basic/testConstructorArgs-1.js
load("a.js")
and a.js is:
for (var x = 0; x < 2; ++x) {}
crashes js debug shell on m-c changeset 18188c19a3c3 with --no-threads --ion-eager at js::jit::BaselineScript::anyKindICEntryFromPCOffset.
Debug configure options:
CC="clang -Qunused-arguments" CXX="clang++ -Qunused-arguments" AR=ar AUTOCONF=/usr/local/Cellar/autoconf213/2.13/bin/autoconf213 sh /Users/skywalker/trees/mozilla-central/js/src/configure --target=x86_64-apple-darwin12.5.0 --enable-debug --enable-optimize --enable-nspr-build --enable-more-deterministic --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests
This was found by combining random js tests together with jsfunfuzz, the specific file(s) is/are:
http://hg.mozilla.org/mozilla-central/file/18188c19a3c3/js/src/jit-test/tests/basic/testIncDecReadOnly.js
http://hg.mozilla.org/mozilla-central/file/18188c19a3c3/js/src/jit-test/tests/ion/bug674664-2.js
http://hg.mozilla.org/mozilla-central/file/18188c19a3c3/js/src/jit-test/tests/debug/onExceptionUnwind-05.js
http://hg.mozilla.org/mozilla-central/file/18188c19a3c3/js/src/jit-test/tests/basic/testConstructorArgs-1.js
autoBisect shows this is probably related to the following changeset:
The first bad revision is:
changeset: https://hg.mozilla.org/mozilla-central/rev/df2462ab460b
user: Shu-yu Guo
date: Wed Nov 26 13:35:57 2014 -0800
summary: Bug 1100337 - Cheat when computing resume address for propagating exception for debug mode in Ion exception handler. (r=jandem)
Shu-yu, is bug 1100337 a likely regressor?
(not using JSBugMon because I cannot seem to take away the call to the load function, so bonus points to anyone who can...)
Flags: needinfo?(shu)
![]() |
Reporter | |
Comment 1•10 years ago
|
||
(lldb) bt 5
* thread #1: tid = 0x456e1d, 0x0000000100249dfa js-dbg-opt-64-dm-nsprBuild-darwin-18188c19a3c3`js::jit::BaselineScript::anyKindICEntryFromPCOffset(unsigned int) [inlined] js::jit::BaselineScript::icEntry(unsigned long) + 28 at BaselineJIT.cpp:496, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
* frame #0: 0x0000000100249dfa js-dbg-opt-64-dm-nsprBuild-darwin-18188c19a3c3`js::jit::BaselineScript::anyKindICEntryFromPCOffset(unsigned int) [inlined] js::jit::BaselineScript::icEntry(unsigned long) + 28 at BaselineJIT.cpp:496
frame #1: 0x0000000100249dde js-dbg-opt-64-dm-nsprBuild-darwin-18188c19a3c3`js::jit::BaselineScript::anyKindICEntryFromPCOffset(unsigned int) [inlined] ComputeBinarySearchMid(baseline=<unavailable>) at BaselineJIT.cpp:564
frame #2: 0x0000000100249dde js-dbg-opt-64-dm-nsprBuild-darwin-18188c19a3c3`js::jit::BaselineScript::anyKindICEntryFromPCOffset(this=<unavailable>, pcOffset=<unavailable>) + 270 at BaselineJIT.cpp:579
frame #3: 0x00000001001ebbd3 js-dbg-opt-64-dm-nsprBuild-darwin-18188c19a3c3`InitFromBailout(cx=0x0000000101d01cf0, callerPC=<unavailable>, ionScript=<unavailable>, iter=<unavailable>, invalidate=<unavailable>, builder=0x0000000101afaea8, startFrameFormals=<unavailable>, callPC=<unavailable>, excInfo=<unavailable>, poppedLastSPSFrameOut=0x0000000000000002, caller=<unavailable>, fun=<unavailable>, script=<unavailable>, nextCallee=<unavailable>) + 9955 at BaselineBailouts.cpp:1041
frame #4: 0x00000001001e8e1d js-dbg-opt-64-dm-nsprBuild-darwin-18188c19a3c3`js::jit::BailoutIonToBaseline(cx=0x0000000101d01cf0, activation=<unavailable>, iter=0x00007fff5fbfcf10, invalidate=<unavailable>, bailoutInfo=0x00007fff5fbfcf08, excInfo=0x00007fff5fbfd570, poppedLastSPSFrameOut=<unavailable>) + 1709 at BaselineBailouts.cpp:1507
(lldb)
Assignee | ||
Comment 2•10 years ago
|
||
The timing required to have hit this is kind of amazing.
Attachment #8532724 -
Flags: review?(jdemooij)
Assignee | ||
Updated•10 years ago
|
Flags: needinfo?(shu)
Assignee | ||
Comment 4•10 years ago
|
||
v2. Improved the previous fix and added the test case from bug 1108556, which
does not depend on timing.
Attachment #8532724 -
Attachment is obsolete: true
Attachment #8532724 -
Flags: review?(jdemooij)
Attachment #8533402 -
Flags: review?(jdemooij)
![]() |
Reporter | |
Comment 5•10 years ago
|
||
Assigning to Shu-yu since he has a patch.
Assignee: nobody → shu
Status: NEW → ASSIGNED
Updated•10 years ago
|
Attachment #8533402 -
Flags: review?(jdemooij) → review+
Comment 6•10 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla37
Comment 7•10 years ago
|
||
Shu, can you please backport those debugger patches if needed? Based on some comments on crash-stats, Aurora is pretty crashy when using the debugger...
Flags: needinfo?(shu)
Assignee | ||
Comment 8•10 years ago
|
||
Filed bug 1114757 and got a rollup patch for a? there.
Assignee | ||
Updated•10 years ago
|
Flags: needinfo?(shu)
Comment 9•10 years ago
|
||
Fixed for Fx36 by the roll-up in bug 1114757.
![]() |
Reporter | |
Comment 10•10 years ago
|
||
// Randomly chosen test: js/src/jit-test/tests/basic/testIncDecReadOnly.js
Object.defineProperty(this, "x", {
value: 0
});
// Randomly chosen test: js/src/jit-test/tests/ion/bug674664-2.js
timeout(0.01);
// Randomly chosen test: js/src/jit-test/tests/debug/onExceptionUnwind-05.js
g = newGlobal();
g.parent = this;
g.eval("Debugger(parent).onExceptionUnwind = function(){};");
// Randomly chosen test: js/src/jit-test/tests/basic/testConstructorArgs-1.js
evaluate(`
for (var x = 0; x < 1; ++x) {}
`, {
compileAndGo: true
})
crashes js debug shell on m-c changeset 18188c19a3c3 with --no-threads --ion-eager at js::jit::BaselineScript::anyKindICEntryFromPCOffset.
(I made the testcase in comment 0 into a standalone one, let's see if jsbugmon can do verification)
Whiteboard: [jsbugmon:update,testComment=10]
![]() |
Reporter | |
Updated•10 years ago
|
Whiteboard: [jsbugmon:update,testComment=10] → [jsbugmon:update,testComment=10,origRev=18188c19a3c3]
You need to log in
before you can comment on or make changes to this bug.
Description
•