Closed
Bug 761864
Opened 13 years ago
Closed 13 years ago
Assertion failure: [barrier verifier] Unmarked edge: scope chain, at jsgc.cpp:4443
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
VERIFIED
FIXED
mozilla16
Tracking | Status | |
---|---|---|
firefox15 | --- | unaffected |
firefox16 | + | fixed |
firefox-esr10 | --- | unaffected |
People
(Reporter: decoder, Assigned: luke)
References
Details
(4 keywords, Whiteboard: js-triage-done [advisory-tracking-])
Attachments
(2 files, 2 obsolete files)
1.23 KB,
application/javascript
|
Details | |
12.84 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
The attached test asserts on mozilla-central revision cf4face65451 (options -m -n):
Assuming s-s due to GC-related assertion.
Assignee | ||
Comment 2•13 years ago
|
||
So what was happening is this:
1. when we start the igc, the suspended generator frame's scope is reachable
2. then we execute code which closes the generator
3. when verifying, the closed generator is no longer traced, so the scope chain isn't reachable and there wasn't a write barrier that marked it
The regression is that https://hg.mozilla.org/mozilla-central/rev/b863ef9946b8#l31.66 made us not trace generator frames of closed generators without adding a write barrier. Instead of adding a write barrier, I'll revert the change (so closed generators are still traced) and just fix the original problem differently (see comment on onGeneratorFrameChange).
Attachment #630790 -
Flags: review?
Assignee | ||
Comment 3•13 years ago
|
||
Oops, wrong version
Attachment #630790 -
Attachment is obsolete: true
Attachment #630790 -
Flags: review?
Attachment #630839 -
Flags: review?
Updated•13 years ago
|
Attachment #630839 -
Flags: review? → review+
Assignee | ||
Comment 4•13 years ago
|
||
After thinking about it a bit more, I realized that the better fix is to just use the same pre-write barrier that we use when copying a generator onto the VM stack when the generator is closed.
Attachment #630839 -
Attachment is obsolete: true
Attachment #631582 -
Flags: review?(terrence)
Comment 5•13 years ago
|
||
Comment on attachment 631582 [details] [diff] [review]
better fix and test
Review of attachment 631582 [details] [diff] [review]:
-----------------------------------------------------------------
This is a nice cleanup.
::: js/src/jsiter.cpp
@@ +1474,5 @@
> return obj;
> }
>
> +static void
> +SetGeneratorClosed(JSContext *cx, JSGenerator *gen);
Why do we need to forward declare this below the definition?
Attachment #631582 -
Flags: review?(terrence) → review+
Assignee | ||
Comment 6•13 years ago
|
||
(In reply to Terrence Cole [:terrence] from comment #5)
Oops, I read this right after pushing. I'll throw it away in a subsequent patch.
https://hg.mozilla.org/integration/mozilla-inbound/rev/bef8d091055a
Target Milestone: --- → mozilla16
Assignee | ||
Comment 7•13 years ago
|
||
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Whiteboard: js-triage-needed → js-triage-done
Reporter | ||
Comment 8•13 years ago
|
||
JSBugMon: This bug has been automatically verified fixed.
Reporter | ||
Updated•13 years ago
|
Status: RESOLVED → VERIFIED
Comment 9•13 years ago
|
||
(In reply to Luke Wagner [:luke] from comment #1)
> This is bug 659577.
I've interpreted this as saying it's a regression from that bug, and that therefore we don't need this in earlier builds. Please clear "unaffected" from those status fields if this is incorrect.
Blocks: 659577
status-firefox-esr10:
--- → unaffected
status-firefox15:
--- → unaffected
status-firefox16:
--- → fixed
tracking-firefox16:
--- → +
Keywords: regression
Comment 10•12 years ago
|
||
Can anyone suggest a security rating for this?
Whiteboard: js-triage-done → js-triage-done [advisory-tracking+]
Keywords: sec-critical
Comment 11•12 years ago
|
||
(In reply to Daniel Veditz [:dveditz] from comment #9)
> (In reply to Luke Wagner [:luke] from comment #1)
> > This is bug 659577.
>
> I've interpreted this as saying it's a regression from that bug, and that
> therefore we don't need this in earlier builds. Please clear "unaffected"
> from those status fields if this is incorrect.
How is this true when bug 761863 is also marked as bug 659577 and is marked as won't fix for 14 and 15?
Comment 12•12 years ago
|
||
> How is this true when bug 761863 is also marked as bug 659577 and is marked
> as won't fix for 14 and 15?
I just marked bug 761863 as WONTFIX at this point in time, for 14 because 14 is already EOL, and 15 because 16 is being released soon (in ~2 weeks).
Luke is out, but I think that comment 9 in bug 761863 is incorrect. I've fixed the flags there.
Comment 14•12 years ago
|
||
No longer tracking for 16 advisories then.
Whiteboard: js-triage-done [advisory-tracking+] → js-triage-done [advisory-tracking-]
Updated•12 years ago
|
Group: core-security
Reporter | ||
Comment 15•12 years ago
|
||
Automatically extracted testcase for this bug was committed:
https://hg.mozilla.org/mozilla-central/rev/efaf8960a929
Flags: in-testsuite+
You need to log in
before you can comment on or make changes to this bug.
Description
•