Closed Bug 652931 Opened 10 years ago Closed 10 years ago

Proper handling of large mark stack insertion

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: gwagner, Assigned: gwagner)

References

Details

(Whiteboard: fixed-in-tracemonkey)

Attachments

(1 file, 1 obsolete file)

I noticed that for the FOTN the large markstack gets pretty full.
Attached patch patch (obsolete) — Splinter Review
Assignee: general → anygregor
Attachment #528404 - Flags: review?(wmccloskey)
Wait, this seems like a serious bug to me. Is there any guarantee that the assertion will succeed?

If push returns false, we should probably just do the normal thing and not use the large object path.

Thanks for finding this!
Yeah I wanted to ask you why we don't check the return value there.
I will come up with another patch.
Summary: Add success assertion for large mark stack insertion → Proper handling of large mark stack insertion
Attached patch patchSplinter Review
Attachment #528404 - Attachment is obsolete: true
Attachment #528404 - Flags: review?(wmccloskey)
Attachment #528863 - Flags: review?(wmccloskey)
Comment on attachment 528863 [details] [diff] [review]
patch

Thanks.

Another way to do it is like this:
  if (...is large dense array... && gcmarker->largeStack.push(LargeMarkItem(obj)))
    /* do thing, push succeeded */;
  else
    clasp->trace(gcmarker, obj);

I'm not sure if this is better or worse, but it avoids code duplication.
Attachment #528863 - Flags: review?(wmccloskey) → review+
Yeah I was thinking of the same code but I have never seen it in SM so I didn't want to start with it :)
http://hg.mozilla.org/tracemonkey/rev/ebc5f8a4b233
Whiteboard: fixed-in-tracemonkey
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Do we need this fix on Aurora or Beta?
(In reply to comment #9)
> Do we need this fix on Aurora or Beta?

Depends if bug 616666 is in there.
Bill is the explicit mark stack on Aurora?
(In reply to comment #12)
> Bill is the explicit mark stack on Aurora?

It seems like Aurora branched on 4/12 and bug 616666 went in on 4/26. So we're good.

It would be nice if there were a web page that listed the time and changeset id of each branch. Maybe there's an easy way to figure this out, but I ended up just searching through hg.mozilla.org, which is pretty annoying.
> It would be nice if there were a web page that listed the time and changeset
> id of each branch. Maybe there's an easy way to figure this out, but I ended
> up just searching through hg.mozilla.org, which is pretty annoying.

Just let cdleary-bot set the target milestone in bugzilla?
You need to log in before you can comment on or make changes to this bug.