Closed Bug 756851 Opened 12 years ago Closed 12 years ago

"Assertion failure: hasAllFlags(OBJECT_FLAG_DYNAMIC_MASK),"

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla15
Tracking Status
firefox14 --- unaffected
firefox15 --- fixed
firefox-esr10 --- unaffected

People

(Reporter: gkw, Assigned: till)

References

Details

(4 keywords, Whiteboard: js-triage-done)

Attachments

(2 files)

Attached file stack
o0 = {};
g = new ArrayBuffer;
g2 = this;
v = g2.o0.t;
o0 = Object;
print(
    {
        x: gc(gcPreserveCode())
    }
);
for (z = 0; z < 3; z) {}

asserts js debug shell on m-c changeset 642d1a36702f with -m and -n at Assertion failure: hasAllFlags(OBJECT_FLAG_DYNAMIC_MASK),

Tested on 64-bit.

gcPreserveCode seems to be involved but I have no idea how serious this might be, setting s-s to be safe.

autoBisect shows this is probably related to the following changeset:

The first bad revision is:
changeset:   94390:5232403e7b8f
user:        Till Schneidereit
date:        Fri May 18 13:35:43 2012 -0400
summary:     Bug 755604 - Incrementalize JSCompartment::markTypes. r=billm
Attached patch fixSplinter Review
The attached patch fixes the assert.

The problem was a missing call to object->markIfUnmarked before GCMarker::pushObject.

I wonder if maybe pushObject and friends should assert that their targets have been marked to prevent similar issues in the future?
Assignee: general → tschneidereit+bmo
Status: NEW → ASSIGNED
Attachment #625500 - Flags: review?(wmccloskey)
Comment on attachment 625500 [details] [diff] [review]
fix

Oops, sorry. I should have caught this.
Attachment #625500 - Flags: review?(wmccloskey) → review+
Thanks Bill!
Keywords: checkin-needed
Whiteboard: js-triage-needed
Blocks: 756796
Pushed to m-c.

https://hg.mozilla.org/mozilla-central/rev/fb3036d9b9e6
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla15
Possible to write a test for this?
Flags: in-testsuite?
I guess I can massage the fuzzer result into a somewhat sane test. Will ask on #jsapi for details.
JSBugMon: This bug has been automatically verified fixed.
Status: RESOLVED → VERIFIED
Whiteboard: js-triage-done
I guess this can be opened now as it only affected trunk and is verified and in today's Nightly, right?
Blocks: 756798
Blocks: 756797
The crash stacks in bug 756796 look sec-critical
Group: core-security
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: