Closed Bug 580694 Opened 14 years ago Closed 14 years ago

JM: "Assertion failure: kind == GetFinalizableThingTraceKind(str),"

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: gkw, Assigned: adrake)

References

Details

(Keywords: assertion, regression, testcase)

Attachments

(1 file, 1 obsolete file)

function f3() {
    try {
        v = f()
    } catch (r) {}
}
function f1(a, t) {
    f2(f, a)
}
function f2() {
    u = uneval()
}
f = (function () {
    Proxy((function () {})(gc()), [])
})
a = ""
f1()
f3(f, a)

asserts js debug shell on JM changeset 7c6f62fcbd91 with -m at Assertion failure: kind == GetFinalizableThingTraceKind(str), at ../jsgc.cpp:2190
This is a result of torn values on the stack. There is now a patch in my queue that syncs type whenever data is synced, and it fixes this bug, as well as the simpler test case:

function die() {
  var a = [];
  var b = [];
  var c = a + b;
  c = ({ });
  gc();
}
die();
Assignee: general → adrake
Status: NEW → ASSIGNED
Attached patch Band-aid patch. (obsolete) — Splinter Review
Attachment #459606 - Flags: review?(dvander)
Attachment #459606 - Attachment is obsolete: true
Attachment #459610 - Flags: review?(dvander)
Attachment #459606 - Flags: review?(dvander)
Comment on attachment 459610 [details] [diff] [review]
Band-aid patch: now with more context!

I think we need something in `::sync() const` as well... band-aid fine for now since we want conservative GC.
Attachment #459610 - Flags: review?(dvander) → review+
http://hg.mozilla.org/users/danderson_mozilla.com/moo/rev/35c51fe530b6
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Automatically extracted testcase for this bug was committed:

https://hg.mozilla.org/mozilla-central/rev/efaf8960a929
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: