Closed Bug 708805 Opened 13 years ago Closed 13 years ago

Assertion failure: static_cast<Cell *>(thing)->isMarked(), at jsgc.cpp:3529

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla11

People

(Reporter: decoder, Assigned: billm)

Details

(Keywords: assertion, testcase)

Attachments

(1 file)

The following test asserts on mozilla-central revision 6785d3003414 (options -m -n -a):


gczeal(4);
test();
function test()
eval("with({}) let(x=[])(function(){#2=x})()");


Not s-s due to incremental GC relatedness.
Attached patch patchSplinter Review
Another great test. I'm not sure how I missed this barrier.
Attachment #580282 - Flags: review?(bhackett1024)
This field didn't exist before objshrink.  I must be missing something, as I didn't think that incremental barriers were needed at all for fields that are only written at the point of object creation (as the function's environment is).  I can see how the HeapPtr is needed for generational write barriers though, are the gczeal(4) asserts stronger than is required for incremental GC?
(In reply to Brian Hackett (:bhackett) from comment #2)
> I must be missing something, as I
> didn't think that incremental barriers were needed at all for fields that
> are only written at the point of object creation (as the function's
> environment is).

There is a write in CloneFunctionObjectIfNotSingleton that is on a pre-existing object.

The verifier currently checks only what's needed for incremental GC. Terrence is working on checks for generational.
Attachment #580282 - Flags: review?(bhackett1024) → review+
https://hg.mozilla.org/mozilla-central/rev/3a190f6b9ee3
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
A testcase for this bug was automatically identified at js/src/jit-test/tests/basic/bug708805.js.
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: