Closed Bug 698871 Opened 15 years ago Closed 14 years ago

[ObjShrink]: GC related crash [@ JSObject::lastProperty] or [@ getObjectParent]

Categories

(Core :: JavaScript Engine, defect)

Other Branch
All
Linux
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: decoder, Unassigned)

References

Details

(Keywords: crash, testcase)

Crash Data

Attachments

(2 files)

Attached file Testcase for shell —
The attached testcase crashes on jaegermonkey branch revision f951e9151626 (run with -m -n -a), tested on 64 bit.
Backtrace: ==38292== Invalid read of size 8 ==38292== at 0x412EAA: JSObject::lastProperty() const (jsobj.h:482) ==38292== by 0x4152CD: JSObject::isNative() const (jsobjinlines.h:1121) ==38292== by 0x52EE47: LookupPropertyWithFlagsInline(JSContext*, JSObject*, jsid, unsigned int, JSObject**, JSProperty**) (jsobj.cpp:5596) ==38292== by 0x52F04B: js::LookupPropertyWithFlags(JSContext*, JSObject*, jsid, unsigned int, JSObject**, JSProperty**) (jsobj.cpp:5654) ==38292== by 0x53094B: js_SetPropertyHelper(JSContext*, JSObject*, jsid, unsigned int, JS::Value*, int) (jsobj.cpp:6214) ==38292== by 0x44D2C8: array_setGeneric(JSContext*, JSObject*, jsid, JS::Value*, int) (jsarray.cpp:931) ==38292== by 0x529453: JSObject::nonNativeSetProperty(JSContext*, jsid, JS::Value*, int) (jsobj.cpp:3669) ==38292== by 0x442D1F: JSObject::setGeneric(JSContext*, jsid, JS::Value*, int) (jsobjinlines.h:141) ==38292== by 0x4F4B91: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:3627) ==38292== by 0x6F12E5: js::mjit::EnterMethodJIT(JSContext*, js::StackFrame*, void*, JS::Value*, bool) (MethodJIT.cpp:1015) ==38292== by 0x6F1470: CheckStackAndEnterMethodJIT(JSContext*, js::StackFrame*, void*, bool) (MethodJIT.cpp:1046) ==38292== by 0x6F1553: js::mjit::JaegerShot(JSContext*, bool) (MethodJIT.cpp:1063) ==38292== Address 0xdadadadadadadada is not stack'd, malloc'd or (recently) free'd
Attachment #571133 - Attachment mime type: text/plain → application/x-gzip
I suspect this bug being the source of many different failures on the JM branch.
Summary: TI: GC related crash [@ JSObject::lastProperty] → [ObjShrink]: GC related crash [@ JSObject::lastProperty]
Here's another testcase: for (e in eval("\ (function(){\ for(x in [0,0]) {\ try {\ let q;\ with(gc()) {\ for(a in <y>></y>)\ yield;\ z\ }\ } catch(e){}\ }\ })\ ")() ) {} crashes js debug shell on JM changeset 1210706b4576 patched with patch v1 from bug 697279 without any CLI flags at JSObject::lastProperty and crashes js opt shell at getObjectParent.
Hardware: x86_64 → All
Summary: [ObjShrink]: GC related crash [@ JSObject::lastProperty] → [ObjShrink]: GC related crash [@ JSObject::lastProperty] or [@ getObjectParent]
Crash Signature: [@ JSObject::lastProperty] → [@ JSObject::lastProperty] [@ getObjectParent]
Attached file stack —
stacks for testcase in comment 3
During array slowification there was an interval where the slowified array appeared to be a newborn, which kept its type from being pinned and led to a later GC crash. This was fixed by bug 684507, which removes isNewborn from JSObject.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: