Closed
Bug 864462
Opened 11 years ago
Closed 11 years ago
Assertion failure: trc->root, at gc/Verifier.cpp
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla23
People
(Reporter: gkw, Assigned: billm)
Details
(Keywords: assertion, regression, testcase)
Attachments
(2 files)
1.86 KB,
text/plain
|
Details | |
1.42 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
An upcoming testcase asserts js debug shell on m-c changeset 2aff2d574a1e with --ion-eager --no-jm --no-ti at Assertion failure: trc->root, at gc/Verifier.cpp Filing first because this is difficult to reproduce on platforms other than an ARM pandaboard, at least for jsfunfuzz. decoder mentions that Langfuzz might have found this as well. s-s because GC stuff seem to be involved, at least from the assertion message.
Reporter | ||
Comment 1•11 years ago
|
||
try { m = new Map(); this.n += 'xxx'; for (var y = 0; y < 9; ++y) { for (var z = 0; z < 9; ++z) { n += n; } } } catch (e) {} m.set(n); verifyprebarriers() print(Array(0x5a827999));
Reporter | ||
Comment 2•11 years ago
|
||
I was discussing this with billm over IRC just now, so setting needinfo.
Flags: needinfo?(wmccloskey)
Assignee | ||
Comment 3•11 years ago
|
||
I was hoping this was just an OOM, but it looks like it's not. hadOutOfMemory is false for the runtime. It appears to be some kind of memory corruption. I'm not sure what the next steps are. It's a huge pain to debug.
Flags: needinfo?(wmccloskey)
Comment 4•11 years ago
|
||
Here's a second test that reproduces most of the time (if not, then it OOMs): var BUGNUMBER = ''; function f2(o) {} function f() { verifyprebarriers(); BUGNUMBER(void 0, f(Int16Array(28800000,-28800))); } f(); Valgrind shows nothing unfortunately.
Assignee | ||
Comment 5•11 years ago
|
||
This turned out to be just an OOM. I should have looked more carefully at the assertion itself. For some reason the debugger was trapping at some other location.
Assignee | ||
Updated•11 years ago
|
Group: core-security
Reporter | ||
Comment 6•11 years ago
|
||
We should also land the 2 testcases in this case.
Comment 7•11 years ago
|
||
Comment on attachment 741012 [details] [diff] [review] patch Review of attachment 741012 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/gc/Verifier.cpp @@ +511,5 @@ > /* Make all the roots be edges emanating from the root node. */ > MarkRuntime(trc); > > + VerifyNode *node; > + node = trc->curnode; Why this change?
Attachment #741012 -
Flags: review?(terrence) → review+
Assignee | ||
Comment 8•11 years ago
|
||
> Why this change? I was getting one of those stupid errors about goto going around a variable initialization. https://hg.mozilla.org/integration/mozilla-inbound/rev/6b1b8e195cad
Comment 9•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/6b1b8e195cad
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
You need to log in
before you can comment on or make changes to this bug.
Description
•