Closed
Bug 816492
Opened 12 years ago
Closed 12 years ago
IonMonkey: Assertion failure: hasScript(), at ../../jsfun.h:203 or Opt-Crash [@ AnalyzeNewScriptProperties]
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
VERIFIED
FIXED
Tracking | Status | |
---|---|---|
firefox17 | --- | unaffected |
firefox19 | --- | unaffected |
firefox20 | --- | fixed |
firefox-esr10 | --- | unaffected |
firefox-esr17 | --- | unaffected |
b2g18 | --- | unaffected |
People
(Reporter: decoder, Assigned: h4writer)
References
Details
(4 keywords, Whiteboard: [jsbugmon:][adv-main20-] fixed by backout)
Crash Data
The following testcase asserts on mozilla-central revision c63d5cff18ba (run with --ion-eager):
function TestCase(n, d, e, a) {}
function reportCompare () {
var testcase = new TestCase();
}
reportCompare();
schedulegc(10);
this.TestCase=Number;
reportCompare(4294967295.5);
Reporter | ||
Comment 1•12 years ago
|
||
Valgrind trace from opt-build:
==16299== Invalid read of size 8
==16299== at 0x4A06E3: AnalyzeNewScriptProperties(JSContext*, js::types::TypeObject*, JSFunction*, JS::MutableHandle<JSObject*>, js::Vector<js::types::TypeNewScript::Initializer, 0ul, js::TempAllocPolicy>*) (jsinferinlines.h:1740)
==16299== by 0x4A0ABA: CheckNewScriptProperties(JSContext*, JS::Handle<js::types::TypeObject*>, JSFunction*) (jsinfer.cpp:4964)
==16299== by 0x4A146D: JSCompartment::getNewType(JSContext*, js::TaggedProto, JSFunction*, bool) (jsinfer.cpp:5888)
==16299== by 0x4A1539: JSObject::getNewType(JSContext*, JSFunction*, bool) (jsinfer.cpp:5914)
==16299== by 0x4DC3B0: js_CreateThisForFunctionWithProto(JSContext*, JS::Handle<JSObject*>, JSObject*) (jsobj.cpp:2359)
==16299== by 0x4029721: ???
==16299== by 0x6ECCA5: EnterIon(JSContext*, js::StackFrame*, void*) (Ion.cpp:1515)
==16299== by 0x4B3FDE: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:2366)
==16299== by 0x4B447A: js::RunScript(JSContext*, JS::Handle<JSScript*>, js::StackFrame*) (jsinterp.cpp:326)
==16299== by 0x4B554A: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:515)
==16299== by 0x422F34: JS_ExecuteScript(JSContext*, JSObject*, JSScript*, JS::Value*) (jsapi.cpp:5565)
==16299== by 0x40F397: Process(JSContext*, JSObject*, char const*, bool) (js.cpp:579)
==16299== Address 0xecc149028948fff8 is not stack'd, malloc'd or (recently) free'd
Looks bad, marking sec-critical.
Blocks: IonFuzz
Crash Signature: [@ AnalyzeNewScriptProperties]
Keywords: crash,
sec-critical
Summary: Assertion failure: hasScript(), at ../../jsfun.h:203 or Opt-Crash [@ AnalyzeNewScriptProperties] → IonMonkey: Assertion failure: hasScript(), at ../../jsfun.h:203 or Opt-Crash [@ AnalyzeNewScriptProperties]
Whiteboard: [jsbugmon:update,bisect]
This looks like an IonMonkey bug to me, probably having to do with invalidation. We call reportCompare twice. The first time through, the |new TestCase()| bit is calling a scripted constructor. The second time, it's calling a native constructor. But somehow Ion seems to be invoking the scripted path in both cases.
Reporter | ||
Updated•12 years ago
|
Whiteboard: [jsbugmon:update,bisect] → [jsbugmon:update,ignore]
Reporter | ||
Comment 3•12 years ago
|
||
JSBugMon: The testcase found in this bug no longer reproduces (tried revision 85471409cbfb).
JSBugMon: Bisection requested, result:
Due to skipped revisions, the first bad revision could be any of:
changeset: 114283:5158d648702e
user: Hannes Verschore
date: Tue Nov 27 22:03:37 2012 +0100
summary: Bug 813773: Enable IM to IM fastpath for constructing calls, r=nbp,sstangl
changeset: 114284:7e5deb571bbe
user: Geoff Brown
date: Tue Nov 27 14:05:18 2012 -0700
summary: Bug 814496 - sutAgent: Stop RedirOutputThread when timeout exceeded; r=wlach
This iteration took 0.214 seconds to run.
Reporter | ||
Updated•12 years ago
|
Whiteboard: [jsbugmon:update,ignore] → [jsbugmon:bisectfix]
Reporter | ||
Updated•12 years ago
|
Whiteboard: [jsbugmon:bisectfix] → [jsbugmon:]
Reporter | ||
Comment 4•12 years ago
|
||
JSBugMon: Fix Bisection requested, result:
autoBisect shows this is probably related to the following changeset:
The first good revision is:
changeset: 114452:6b4e13b0d1e4
user: Hubert Figuière
date: Wed Nov 28 23:00:56 2012 -0500
summary: Bug 816378 - Backout 5158d648702e (Bug 813773). a=bustage,Waldo
This iteration took 75.334 seconds to run.
Comment 5•12 years ago
|
||
Naveed do you know if Hannes' changeset in comment 4 might re-land or is this bug likely closeable?
Assignee: general → nihsanullah
Hannes, sounds like bug 813773 is likely for blame - could you take a look?
Assignee: nihsanullah → hv1989
Status: NEW → ASSIGNED
Assignee | ||
Comment 7•12 years ago
|
||
Oh cool! That's probably a reduced testcase of the gmail crashes we had!
Eventually I wanted to reland bug 813773, but didn't found the time yet to seek what the real problem with it was. This is now really simple, thanks :D
Assignee | ||
Comment 8•12 years ago
|
||
This problem is actually solved by backing out that changeset. I'll put this on WFM and create a better fix in the main bug 813773
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → WORKSFORME
Comment 9•12 years ago
|
||
"FIXED" is better -- you did make a change that made this problem go away and it might come back if that fix is undone. I'm assuming you'll land the testcase as part of the re-jiggered bug 813773; when you do please change the in-testsuite? flag to '+' here so we don't try to land duplicate regression tests for it in the future
Flags: in-testsuite?
Resolution: WORKSFORME → FIXED
Reporter | ||
Updated•12 years ago
|
Status: RESOLVED → VERIFIED
Reporter | ||
Comment 10•12 years ago
|
||
JSBugMon: This bug has been automatically verified fixed.
Assignee | ||
Comment 11•12 years ago
|
||
Thanks for the explanation, Daniel. I intended to land the testcase in bug 819299, but I forgot :(. Therefore I've now added it.
https://hg.mozilla.org/integration/mozilla-inbound/rev/ba667d2eeaba
Flags: in-testsuite? → in-testsuite+
Comment 12•12 years ago
|
||
Updated•12 years ago
|
status-firefox-esr10:
--- → unaffected
status-firefox17:
--- → unaffected
status-firefox20:
--- → fixed
status-firefox-esr17:
--- → unaffected
Whiteboard: [jsbugmon:] → [jsbugmon:] fixed by backout
Updated•12 years ago
|
status-b2g18:
--- → unaffected
Updated•12 years ago
|
status-firefox19:
--- → unaffected
Whiteboard: [jsbugmon:] fixed by backout → [jsbugmon:][adv-main20-] fixed by backout
Updated•11 years ago
|
Group: core-security
You need to log in
before you can comment on or make changes to this bug.
Description
•