Closed
Bug 939476
Opened 11 years ago
Closed 11 years ago
"Assertion failure: phases[phase].parent == parent" with gcparam('markStackLimit')
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla28
People
(Reporter: jruderman, Assigned: jonco)
References
Details
(Keywords: assertion, testcase)
Attachments
(4 files)
1. Install https://www.squarefree.com/extensions/domFuzzLite3.xpi 2. Load the testcase Assertion failure: phases[phase].parent == parent, at js/src/gc/Statistics.cpp:629 This assertion was added in: changeset: http://hg.mozilla.org/mozilla-central/rev/14893aa56835 user: Bill McCloskey date: Tue Dec 04 18:29:45 2012 -0800 summary: Bug 817341 - Differentiate marking and sweep-marking in GC stats (r=jonco)
Reporter | ||
Comment 1•11 years ago
|
||
Reporter | ||
Comment 2•11 years ago
|
||
Reporter | ||
Comment 3•11 years ago
|
||
Shell testcase coming up
Reporter | ||
Comment 4•11 years ago
|
||
Shell testcase: Object.getOwnPropertyNames(this); gcparam('markStackLimit', 2)
Assignee | ||
Comment 5•11 years ago
|
||
markDelayedChildren() can take place in any of the following phases: - PHASE_MARK - PHASE_SWEEP_MARK - PHASE_SWEEP_MARK_INCOMING_BLACK - PHASE_SWEEP_MARK_INCOMING_GRAY - PHASE_SWEEP_MARK_GRAY However only the first two are currently handled, and if it occurs in the others it will trigger this assertion. Fortunately this is rare outside of deliberately setting markStackLimit. I'm going to suggest that we only give this a separate phase for marking, and for the other phases it's called in we just roll its time into that phase. Bill are you ok with that approach?
Flags: needinfo?(wmccloskey)
Yeah, sounds good. Perhaps you could use Maybe<AutoPhase> to implement that?
Flags: needinfo?(wmccloskey)
Assignee | ||
Comment 7•11 years ago
|
||
Here's a patch. I tried to use Maybe<AutoPhase> but the template construct() definitions only takes const& arguments, so that didn't work for passing Statistics.
Assignee: nobody → jcoppeard
Attachment #8334618 -
Flags: review?(wmccloskey)
Comment on attachment 8334618 [details] [diff] [review] bug939476-stats-phase Review of attachment 8334618 [details] [diff] [review]: ----------------------------------------------------------------- I guess we could change AutoPhase to take a Statistics* to get around the const T& problem, but this seems fine too.
Attachment #8334618 -
Flags: review?(wmccloskey) → review+
Assignee | ||
Comment 9•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/915744e45b57
Comment 10•11 years ago
|
||
Unfortunately this and the other bugs in https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?changeset=db0f8a5eeb33 have been backed out for causing rootanalysis assertions, eg: https://tbpl.mozilla.org/php/getParsedLog.php?id=30835010&tree=Mozilla-Inbound Backout: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?changeset=05a0228c2caa (For quick relanding, I recommend the third party qbackout extension and '--apply' mode)
Assignee | ||
Comment 11•11 years ago
|
||
Relanding: https://hg.mozilla.org/integration/mozilla-inbound/rev/7762a99ce512
Comment 12•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/7762a99ce512
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Comment 13•10 years ago
|
||
Reproduced with Nightly debug build from 2013-11-15 on Ubuntu 13.10 x64: Assertion failure: phases[phase].parent == parent, at /builds/slave/m-cen-l64-st-an-d-000000000000/build/js/src/gc/Statistics.cpp:629 No assertions with Fx 28 beta 2 (Build ID: 20140210135004) debug build on the same machine. On Mac OS X 10.8 on both Nightly and Fx 28 beta 2 debug builds I get: Assertion failure: isEmpty(), at /builds/slave/m-beta-osx64-d-000000000000000/build/js/src/jsgc.h:981 ; maybe bug 939499? I suppose because of bug 939499 I cannot see/verify this failure. Is there any other way to verify this fix on Mac OS X too and do not hit Assertion failure: isEmpty()?
Flags: needinfo?(jcoppeard)
Assignee | ||
Comment 14•10 years ago
|
||
(In reply to Alexandra Lucinet, QA Mentor [:adalucinet] from comment #13) I don't know why you're getting that failure. It seems like bug 939499 should only apply if verifyprebarriers() is called first, and there should be no difference between Mac OS and Linux either. Just to confirm what's happening, can you post a backtrace of the assertion? I'll have a look at bug 939499 as well.
Flags: needinfo?(jcoppeard)
Comment 15•10 years ago
|
||
This is what I get in the console. Do you need something more specific? If yes, which tool should I use to get that?
You need to log in
before you can comment on or make changes to this bug.
Description
•