Assertion failure: target.hasCachedSavedFrame(), at js/src/vm/SavedStacks.cpp:1690 with Debugger
Categories
(Core :: JavaScript Engine, defect, P3)
Tracking
()
People
(Reporter: decoder, Assigned: jimb)
References
Details
(4 keywords, Whiteboard: [jsbugmon:testComment=9,origRev=8ec327de0ba7])
Attachments
(1 file)
Updated•7 years ago
|
Assignee | ||
Comment 2•7 years ago
|
||
Assignee | ||
Comment 3•7 years ago
|
||
Assignee | ||
Comment 4•7 years ago
|
||
Assignee | ||
Comment 5•7 years ago
|
||
Assignee | ||
Comment 6•7 years ago
|
||
Assignee | ||
Comment 7•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Comment hidden (obsolete) |
var evalInFrame = (function (global) {
var dbgGlobal = newGlobal();
var dbg = new dbgGlobal.Debugger();
return function evalInFrame(code) {
dbg.addDebuggee(global);
var frame = dbg.getNewestFrame().older;
frame = frame.older;
var completion = frame.eval(code);
};
})(this);
while (true) {
(function g() { evalInFrame("saveStack()"); })();
}
asserts js shell compiled with --enable-debug on m-c rev 8ec327de0ba7 using --fuzzing-safe --no-threads --ion-eager --more-compartments at Assertion failure: target.hasCachedSavedFrame(), at js/src/vm/SavedStacks.cpp:1550
Updated•6 years ago
|
Comment 10•6 years ago
|
||
![]() |
||
Updated•6 years ago
|
Assignee | ||
Comment 11•6 years ago
|
||
I haven't been working on this, since it's P3 (per comment 7).
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Updated•5 years ago
|
Updated•5 years ago
|
Comment 14•5 years ago
|
||
I'm hitting this with WarpBuilder enabled on debug/bug-1444604-reduced.js.
The fix for this isn't trivial. I think I'll add --no-warp to that test but it would be great if we could fix this bug.
Comment 15•5 years ago
|
||
This reproduction can be trimmed down to
var dbgGlobal = newGlobal({ newCompartment: true });
var dbg = new dbgGlobal.Debugger(globalThis);
for (var i = 0; i < 1; i++) {
(() => {
dbg.getNewestFrame().older.eval("saveStack()");
})();
}
run with --fuzzing-safe --no-threads --ion-eager
.
I was looking into a related bug and decided to check out this one too. I have a potential fix but I'll need review before I'm particularly confident that it's the right fix.
Comment 16•5 years ago
|
||
This bug is caused because creating a LiveSavedFrameCache::FramePtr from a
FrameIter special-cases RematerializedFrames that are also PhysicalJitFrames.
This creates a FramePtr for a CommonFrameLayout, which is reasonable, but it
conflicts with the fact that ExecuteKernel is only passed an AbstractFramePtr
which means that when we go to compare the two FramePtr values, one is a
RematerializedFrame and one is a CommonFrameLayout even though they both
refer to the same frame.
This patch uses the FrameIter construction method for all FramePtr instances
so we avoid this two-constructor approach and can be more easily sure that
all code paths can properly construct the same FramePtr.
Comment 17•5 years ago
|
||
Comment 18•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Description
•