Closed
Bug 1343426
Opened 7 years ago
Closed 7 years ago
Assertion failure: throwing, at js/src/jscntxt.cpp:1275 with Debugger and Promise
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla55
People
(Reporter: gkw, Assigned: till)
References
Details
(Keywords: assertion, bugmon, testcase, Whiteboard: [jsbugmon:update,ignore])
Attachments
(1 file)
6.95 KB,
text/plain
|
Details |
The following testcase crashes on mozilla-central revision e1135c6fdc9b (build with --enable-debug --enable-more-deterministic, run with --fuzzing-safe --no-threads --no-baseline --no-ion): // Adapted from randomly chosen test: js/src/tests/test262/built-ins/Promise/prototype/then/resolve-pending-rejected-poisoned-then.js poisonedThen = Object.defineProperty({}, 'then', { get: function() e }); var p1 = new Promise(function(_, _reject) { reject = _reject; }); p1.then(function() {}, function() { return poisonedThen; }); reject(); // Adapted from randomly chosen test: js/src/jit-test/tests/auto-regress/bug1317460.js g = newGlobal(); g.parent = this; g.eval("(" + function() { Debugger(parent).onExceptionUnwind = function() { return 0; }; } + ")()"); Backtrace: #0 0x000000000094f2d0 in JSContext::getPendingException (this=this@entry=0x7f72f4450000, rval=...) at js/src/jscntxt.cpp:1275 #1 0x000000000051f17f in js::GetAndClearException (cx=cx@entry=0x7f72f4450000, res=..., res@entry=...) at js/src/vm/Interpreter.cpp:4419 #2 0x00000000005d591e in ResolvePromiseInternal (cx=cx@entry=0x7f72f4450000, promise=promise@entry=..., resolutionVal=..., resolutionVal@entry=...) at js/src/builtin/Promise.cpp:367 #3 0x00000000005d617d in RunResolutionFunction (cx=0x7f72f4450000, resolutionFun=..., resolutionFun@entry=..., result=result@entry=..., mode=mode@entry=ResolveMode, promiseObj=promiseObj@entry=...) at js/src/builtin/Promise.cpp:1576 #4 0x00000000005d6809 in PromiseReactionJob (cx=0x7f72f4450000, argc=<optimized out>, vp=<optimized out>) at js/src/builtin/Promise.cpp:917 /snip For detailed crash information, see attachment.
Reporter | ||
Comment 1•7 years ago
|
||
Reporter | ||
Comment 2•7 years ago
|
||
autoBisect shows this is probably related to the following changeset: The first bad revision is: changeset: https://hg.mozilla.org/mozilla-central/rev/fe85f9809f82 user: Luke Wagner date: Fri Feb 24 09:30:38 2017 -0600 summary: Bug 1341749 - Drain job queue even after error (r=bbouvier) Luke, is bug 1341749 a likely regressor?
Blocks: 1341749
Flags: needinfo?(luke)
Reporter | ||
Updated•7 years ago
|
Summary: Assertion failure: throwing, at js/src/jscntxt.cpp:1275 → Assertion failure: throwing, at js/src/jscntxt.cpp:1275 with Debugger and Promise
Comment 3•7 years ago
|
||
Locally, I seem to be able to reproduce this crash at the parent cset fe85f9809f82. My impression here is that, before bug 1341749, there was a race to repro the crash and, after bug 1341749, the race goes away b/c we now drainJobQueue() even on the error path out of the shell. I expect this is actually a pretty simple problem to diagnose for someone more familiar with the promise machinery.
Flags: needinfo?(luke)
Assignee | ||
Comment 5•7 years ago
|
||
This is almost certainly a dupe of bug 1339999. Will close as such after testing tomorrow.
Updated•7 years ago
|
Whiteboard: [jsbugmon:update] → [jsbugmon:update,ignore]
Comment 6•7 years ago
|
||
JSBugMon: The testcase found in this bug no longer reproduces (tried revision 23fe0b76a018).
Reporter | ||
Comment 7•7 years ago
|
||
autoBisect shows this is probably related to the following changeset: The first good revision is: changeset: https://hg.mozilla.org/mozilla-central/rev/caa3df341ea8 parent: 349667:f5e214144799 user: Till Schneidereit date: Sat Mar 25 17:43:44 2017 -0700 summary: Bug 1339999 - Properly handle OOM during exception throwing in all Promise code. r=arai Indeed FIXED by bug 1339999.
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(till)
Resolution: --- → FIXED
Updated•7 years ago
|
Assignee: nobody → till
status-firefox53:
--- → fixed
status-firefox55:
--- → fixed
status-firefox-esr52:
--- → fixed
Depends on: 1339999
Target Milestone: --- → mozilla55
You need to log in
before you can comment on or make changes to this bug.
Description
•