Closed Bug 728686 Opened 12 years ago Closed 12 years ago

JS_NewPropertyIterator disables IGC

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla13

People

(Reporter: khuey, Assigned: billm)

References

Details

Attachments

(1 file)

2771        cx->runtime->gcIncrementalEnabled = false;

>	mozjs.dll!NewObject(JSContext * cx, js::Class * clasp, js::types::TypeObject * type, JSObject * parent, js::gc::AllocKind kind)  Line 2771	C++
 	mozjs.dll!js::NewObjectWithClassProto(JSContext * cx, js::Class * clasp, JSObject * proto, JSObject * parent, js::gc::AllocKind kind)  Line 2857 + 0xf bytes	C++
 	mozjs.dll!JS_NewPropertyIterator(JSContext * cx, JSObject * obj)  Line 4337 + 0x52 bytes	C++
 	mozjs.dll!js::ctypes::ExtractStructField(JSContext * cx, JS::Value val, JSObject * * typeObj)  Line 3994 + 0x9 bytes	C++
 	mozjs.dll!js::ctypes::StructType::DefineInternal(JSContext * cx, JSObject * typeObj, JSObject * fieldsObj)  Line 4159 + 0x1a bytes	C++
 	mozjs.dll!js::ctypes::StructType::Create(JSContext * cx, unsigned int argc, JS::Value * vp)  Line 4104 + 0x12 bytes	C++
 	mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct)  Line 499 + 0x10 bytes	C++
 	mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode)  Line 2694 + 0x11 bytes	C++
 	mozjs.dll!js::RunScript(JSContext * cx, JSScript * script, js::StackFrame * fp)  Line 454 + 0x7 bytes	C++
 	mozjs.dll!js::InvokeKernel(JSContext * cx, js::CallArgs args, js::MaybeConstruct construct)  Line 518	C++
 	mozjs.dll!js::Invoke(JSContext * cx, const JS::Value & thisv, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 549 + 0x13 bytes	C++
 	mozjs.dll!js::InvokeGetterOrSetter(JSContext * cx, JSObject * obj, const JS::Value & fval, unsigned int argc, JS::Value * argv, JS::Value * rval)  Line 623 + 0x30 bytes	C++
 	mozjs.dll!js::Shape::get(JSContext * cx, JSObject * receiver, JSObject * obj, JSObject * pobj, JS::Value * vp)  Line 287 + 0x25 bytes	C++
 	mozjs.dll!js::GetPropertyHelper(JSContext * cx, JSObject * obj, int id, unsigned int getHow, JS::Value * vp)  Line 5297 + 0xed bytes	C++
 	mozjs.dll!js::GetPropertyOperation(JSContext * cx, unsigned char * pc, const JS::Value & lval, JS::Value * vp)  Line 283 + 0xd bytes	C++
 	mozjs.dll!js::Interpret(JSContext * cx, js::StackFrame * entryFrame, js::InterpMode interpMode)  Line 2567 + 0x17 bytes	C++
 	mozjs.dll!js::RunScript(JSContext * cx, JSScript * script, js::StackFrame * fp)  Line 454 + 0x7 bytes	C++
 	mozjs.dll!js::ExecuteKernel(JSContext * cx, JSScript * script, JSObject & scopeChain, const JS::Value & thisv, js::ExecuteType type, js::StackFrame * evalInFrame, JS::Value * result)  Line 658	C++
 	mozjs.dll!js::Execute(JSContext * cx, JSScript * script, JSObject & scopeChainArg, JS::Value * rval)  Line 698 + 0x27 bytes	C++
 	mozjs.dll!JS_ExecuteScriptVersion(JSContext * cx, JSObject * obj, JSScript * script, JS::Value * rval, JSVersion version)  Line 5308 + 0x20 bytes	C++
Assignee: general → wmccloskey
Blocks: 728683
Blocks: 728701
Blocks: 728702
Attached patch patchSplinter Review
This fixes the problem. I also pushed a patch to tryserver with the assert that we never disable incremental GC. It's here:
https://tbpl.mozilla.org/?tree=Try&rev=59c49d1a9af2
Attachment #599250 - Flags: review?(igor)
Attachment #599250 - Flags: review?(igor) → review+
The try push uncovered some additional problems. I'll file separate bugs for those.
https://hg.mozilla.org/integration/mozilla-inbound/rev/b7f7b63038dd
Target Milestone: --- → mozilla13
Backed out in https://hg.mozilla.org/integration/mozilla-inbound/rev/ad860eb661b7 for a couple of things, one I'm pretty sure about, one I'm only suspicious about.

The mochitest-browser-chrome leaks in https://tbpl.mozilla.org/php/getParsedLog.php?id=9513704&tree=Mozilla-Inbound and https://tbpl.mozilla.org/php/getParsedLog.php?id=9513352&tree=Mozilla-Inbound are not any known intermittent leak, but they are the very same leak your try push had on the same platforms, Win7 and OS X 10.5.

I'd also like to pin the intermittent mochitest-a11y failures in https://tbpl.mozilla.org/php/getParsedLog.php?id=9512956&tree=Mozilla-Inbound and https://tbpl.mozilla.org/php/getParsedLog.php?id=9513843&tree=Mozilla-Inbound and https://tbpl.mozilla.org/php/getParsedLog.php?id=9511828&tree=Mozilla-Inbound on this, but I'm less certain I can.
Target Milestone: mozilla13 → ---
Never mind the a11y, probably - the first two were a new failure introduced above your push, the third, which was on you... dunno. Could just be a new intermittent not related to you, could be you.
Blocks: 732787
https://hg.mozilla.org/integration/mozilla-inbound/rev/85ffbb752398

I was only able to land this after disabling incremental GC by default. The work to fix the leaks will carry on in bug 735099.
Target Milestone: --- → mozilla13
https://hg.mozilla.org/mozilla-central/rev/85ffbb752398
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla13
sorry, didn't see the backout
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: mozilla13 → ---
https://hg.mozilla.org/mozilla-central/rev/8d1c74566a0b
Status: REOPENED → RESOLVED
Closed: 12 years ago12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla13
Verified as fixed on Firefox Aurora(20120609042006), Nightly(20120611030526), and on the latest Firefox 14.0 beta (20120605113340 - I enabled IGC manually on this one before testing).

Since there are no steps in this bug, I used the steps in the 3 duplicate bugs to verify it.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.