Closed Bug 1314028 Opened 3 years ago Closed 3 years ago

Intermittent dom/promise/tests/test_webassembly_compile.html | application crashed [@ JSContext::getPendingException(JS::MutableHandle<JS::Value>)]

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla52
Tracking Status
firefox50 --- unaffected
firefox51 --- unaffected
firefox52 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: till)

Details

(Keywords: crash, intermittent-failure)

Attachments

(1 file)

Fortunately, it looks like the crashing condition is pretty simple: GetAndClearException() is being called when no exception is pending.  This seems to be called by AbruptRejectPromise which was just added in bug 1313049.  So what this test is doing is calling worker.terminate() when that worker has a bunch of pending promises.  I believe terminate() uses the interrupt callback to abruptly terminate, so I expect that is why, even though JS::ForOfIterator::init() is returning false, no exception is pending.  So I expect the fix is to handle the !cx->isExceptionPending() case.
Flags: needinfo?(till)
Keywords: crash
(In reply to Luke Wagner [:luke] from comment #1)
> So I expect the fix is to handle the !cx->isExceptionPending()
> case.

Yeah, except I'm not sure how much handling there is to do, really. I *think* just bailing is the best we can do in this situation, so the patch I just asked for review for does that.
Flags: needinfo?(till)
Comment on attachment 8807349 [details]
Bug 1314028 - Don't try to handle uncatchable exceptions in AbruptRejectPromise.

https://reviewboard.mozilla.org/r/90526/#review90250

Makes sense.
Attachment #8807349 - Flags: review?(luke) → review+
Pushed by tschneidereit@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/c71bdc18c5c7
Don't try to handle uncatchable exceptions in AbruptRejectPromise. r=luke
https://hg.mozilla.org/mozilla-central/rev/c71bdc18c5c7
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla52
Assignee: nobody → till
You need to log in before you can comment on or make changes to this bug.