Closed Bug 1296484 Opened 8 years ago Closed 8 years ago

Run the CycleCollector from the GC when we detect that COMPARTMENT_REVIVED is not enough

Categories

(Core :: JavaScript: GC, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla51
Tracking Status
firefox51 --- fixed

People

(Reporter: terrence, Assigned: terrence)

Details

Attachments

(1 file, 2 obsolete files)

Attached patch CC_after_gray_GC-v0.diff (obsolete) (deleted) — Splinter Review
If we find a compartment that should be collectable but isn't by the end of the GC, we trigger a non-incremental compartmental GC of type COMPARTMENT_REVIVED to collect it. This handles the case where a compartment is marked live by a barrier touching something in the compartment, which may happen incidentally. Doing the work non-incrementally takes barriers out of the equation and lets us reliably collect compartments, even if the mutator is doing something pathological. Unfortunately, this heuristic does not account for compartments that are unexpectedly live because of a reference from a DOM C++ object and not from a barrier. Since the cycle collector is only triggered by DOM garbage, a fantastic amount of gray JS garbage can pile up and slow everything down in compartments that would be collected if only we could get rid of the one link from the DOM holding the whole thing live. In this specific case, something relating to navigation is reliably turning most compartments black in between when the GC ends and the next CC begins. In essence, the mutator is doing something pathological here (although I don't know just what yet). We should certainly solve this specific case, but I'd also like to add a backstop for the general problem by making the GC able to "take care of" gray garbage when it determines that it's being flooded by such. The attached patch implements this by adding a PurgeGray hook that the GC can call to purge gray objects (e.g. do a Cycle Collection). The GC only makes use of this if we detect a revived compartment and either >80% of the remaining compartments are gray, or there are more than 200 gray compartments. In this case we follow our non-incremental GC by a non-incremental CC, cleaning up the edges without allowing barriers to interfere with lifetime. Note that these constraints are quite severe, so (as with COMPARTMENT_REVIVIED) I expect that this will only impact severe workloads. In my local testing, this halved the time it takes to run the jstestbrowser suite.
Attachment #8782697 - Flags: review?(jcoppeard)
Attachment #8782697 - Flags: review?(continuation)
Comment on attachment 8782697 [details] [diff] [review] CC_after_gray_GC-v0.diff Review of attachment 8782697 [details] [diff] [review]: ----------------------------------------------------------------- This sounds like a great idea to make sure we collect these compartments if they really are garbage. Sorry to bikeshed, but I'm not sure about using 'purge' in the name though. We already use this for flushing caches and the like and it implies we throw all the gray things away rather than running a cycle collection.
Attachment #8782697 - Flags: review?(jcoppeard) → review+
It's only bikeshedding if you suggest a color though!
Comment on attachment 8782697 [details] [diff] [review] CC_after_gray_GC-v0.diff Review of attachment 8782697 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/public/GCAPI.h @@ +393,5 @@ > + * The purge gray callback is called after any COMPARTMENT_REVIVED GC in which > + * the majority of compartments have been marked gray. > + */ > +extern JS_PUBLIC_API(GCPurgeGrayCallback) > +SetGCPurgeGrayCallback(JSContext* cx, GCPurgeGrayCallback callback); I agree with Jon that "purge gray" isn't a great name. Maybe just something like "ExcessiveGrayCallback"? Or give up the pretense that this is some general mechanism and call it "CycleCollectCallback"? ::: xpcom/base/CycleCollectedJSRuntime.cpp @@ +834,5 @@ > +CycleCollectedJSRuntime::GCPurgeGrayCallback(JSContext* aContext) > +{ > + // The GC has detected that a CC at this point would collect a tremendous > + // amount of garbage that is being revivified unnecessarily. > + nsCycleCollector_collect(nullptr); On the main thread, you shouldn't call _collect() directly. Instead you should be calling nsJSEnvironment::CycleCollectNow(). On workers, you don't want to do this at all, because we always do a sync CC at the end of a GC. So I think this should all be moved to XPCJSRuntime. Also, I've always thought the JS API penchant for returning the old callback and then calling it was silly, but if you are going to bother with that, you should actually call it if there is one!
Attachment #8782697 - Flags: review?(continuation) → review-
Attached patch CC_after_gray_GC-v1.diff (obsolete) (deleted) — Splinter Review
Moved to XPConnect and now calling it's successor. You're quite right though that this situation is abysmal. I've got a couple patches to follow up with that clean up how we handle hooks in the GC.
Attachment #8782697 - Attachment is obsolete: true
Attachment #8783644 - Flags: review?(continuation)
Comment on attachment 8783644 [details] [diff] [review] CC_after_gray_GC-v1.diff Review of attachment 8783644 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/xpconnect/src/XPCJSRuntime.cpp @@ +728,5 @@ > + return; > + > + // The GC has detected that a CC at this point would collect a tremendous > + // amount of garbage that is being revivified unnecessarily. > + nsCycleCollector_collect(nullptr); This still needs to be nsJSEnvironment::CycleCollectNow(). Otherwise this looks fine to me. Thanks.
Attachment #8783644 - Flags: review?(continuation) → review+
Seems that XPConnect doesn't know about nsJSEnvironment? /home/terrence/moz/branch/t/js/xpconnect/src/XPCJSRuntime.cpp:732:5: error: ‘nsJSEnvironment’ has not been declared
Flags: needinfo?(continuation)
(In reply to Terrence Cole [:terrence] from comment #7) > Seems that XPConnect doesn't know about nsJSEnvironment? Oh, sorry, it is supposed to be nsJSContext::CycleCollectNow(). The header file is nsJSEnvironment.h.
Flags: needinfo?(continuation)
https://hg.mozilla.org/integration/mozilla-inbound/rev/bba47d5c258339a23c921456aec5ba4d07b7f097 Bug 1296484 - Automatically CycleCollect if COMPARTMENT_REVIVED GC ends mostly gray; r=mccr8,r=jonco
This is going to get backed out as soon as the trees are open enough to do so. The crash stack is the most amazing thing ever: https://treeherder.mozilla.org/logviewer.html#?job_id=34533350&repo=mozilla-inbound#L6354 16:29:04 INFO - Assertion failure: isNurseryAllocAllowed(), at /builds/slave/m-in-m64-d-0000000000000000000/build/src/js/src/gc/Allocator.cpp:79 16:29:04 INFO - TEST-INFO | Main app process: exit 1 16:29:04 WARNING - TEST-UNEXPECTED-FAIL | ShutdownLeaks | process() called before end of test suite 16:29:04 INFO - 179 INFO checking window state 16:29:04 INFO - 180 INFO Initializing a debugger panel. 16:29:04 INFO - 181 INFO Adding tab: about:blank 16:29:04 INFO - 182 INFO Loading frame script with url chrome://mochitests/content/browser/devtools/client/debugger/test/mochitest/code_frame-script.js. 16:29:04 INFO - 183 INFO Tab added and finished loading: about:blank 16:29:04 INFO - 184 INFO Debugee tab added successfully: http://example.com/browser/devtools/client/debugger/test/mochitest/doc_recursion-stack.html 16:29:04 INFO - 185 INFO Console message: [JavaScript Warning: "Expected declaration but found ‘*’. Skipped to next declaration." {file: "chrome://devtools/content/sourceeditor/codemirror/lib/codemirror.css" line: 210 column: 2 source: " *zoom:1;"}] 16:29:04 INFO - 186 INFO Console message: [JavaScript Warning: "Expected declaration but found ‘*’. Skipped to next declaration." {file: "chrome://devtools/content/sourceeditor/codemirror/lib/codemirror.css" line: 211 column: 2 source: " *display:inline;"}] 16:29:04 INFO - 187 INFO Console message: [JavaScript Warning: "Unknown property ‘user-select’. Declaration dropped." {file: "chrome://devtools/content/sourceeditor/codemirror/lib/codemirror.css" line: 232 column: 13 source: " user-select: none;"}] 16:29:04 INFO - 188 INFO Console message: [JavaScript Warning: "Unknown property ‘-moz-border-radius’. Declaration dropped." {file: "chrome://devtools/content/sourceeditor/codemirror/lib/codemirror.css" line: 241 column: 20 source: " -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;"}] 16:29:04 INFO - 189 INFO Console message: [JavaScript Warning: "Unknown pseudo-class or pseudo-element ‘selection’. Ruleset ignored due to bad selector." {file: "chrome://devtools/content/sourceeditor/codemirror/lib/codemirror.css" line: 322 column: 18 source: ".CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }"}] 16:29:04 INFO - 190 INFO Console message: [JavaScript Warning: "Expected declaration but found ‘*’. Skipped to next declaration." {file: "chrome://devtools/content/sourceeditor/codemirror/lib/codemirror.css" line: 331 column: 19 source: ".CodeMirror span { *vertical-align: text-bottom; }"}] 16:29:04 INFO - 191 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-attachment’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 192 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-clip’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 193 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-color’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 194 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-image’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 195 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-origin’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 196 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-position-x’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 197 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-position-y’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 198 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-repeat’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 199 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-size’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 200 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-attachment’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 201 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-clip’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 202 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-color’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 203 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-image’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 204 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-origin’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 205 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-position-x’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 206 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-position-y’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 207 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-repeat’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 208 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-size’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 16 column: 385 source: " var(--theme-body-background)"}] 16:29:04 INFO - 209 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘border-right-color’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 252 column: 5966 source: " var(--theme-splitter-color)"}] 16:29:04 INFO - 210 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-color’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 253 column: 6017 source: " var(--theme-sidebar-background)"}] 16:29:04 INFO - 211 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘border-right-color’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 252 column: 5966 source: " var(--theme-splitter-color)"}] 16:29:04 INFO - 212 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-color’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 253 column: 6017 source: " var(--theme-sidebar-background)"}] 16:29:04 INFO - 213 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘border-right-color’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 252 column: 5966 source: " var(--theme-splitter-color)"}] 16:29:04 INFO - 214 INFO Console message: [JavaScript Warning: "Property contained reference to invalid variable. Error in parsing value for ‘background-color’. Falling back to ‘initial’." {file: "chrome://devtools/skin/light-theme.css" line: 253 column: 6017 source: " var(--theme-sidebar-background)"}] 16:29:04 WARNING - TEST-UNEXPECTED-FAIL | devtools/client/debugger/test/mochitest/browser_dbg_location-changes-01-simple.js | application terminated with exit code 1 16:29:04 INFO - runtests.py | Application ran for: 0:10:06.931835 16:29:04 INFO - zombiecheck | Reading PID log: /var/folders/sw/s26whz2n6pbfv14p7p8hkdxw00000w/T/tmpCTFD6tpidlog 16:29:04 INFO - mozcrash Copy/paste: /builds/slave/test/build/macosx64-minidump_stackwalk /var/folders/sw/s26whz2n6pbfv14p7p8hkdxw00000w/T/tmp06vCzR.mozrunner/minidumps/01E914E3-ECDF-4925-AC16-B98895F3C27D.dmp /builds/slave/test/build/symbols 16:29:17 INFO - mozcrash Saved minidump as /builds/slave/test/build/blobber_upload_dir/01E914E3-ECDF-4925-AC16-B98895F3C27D.dmp 16:29:17 INFO - mozcrash Saved app info as /builds/slave/test/build/blobber_upload_dir/01E914E3-ECDF-4925-AC16-B98895F3C27D.extra 16:29:17 WARNING - PROCESS-CRASH | devtools/client/debugger/test/mochitest/browser_dbg_location-changes-01-simple.js | application crashed [@ JSObject* js::gc::GCRuntime::tryNewNurseryObject<(js::AllowGC)1>(JSContext*, unsigned long, unsigned long, js::Class const*)] 16:29:17 INFO - Crash dump filename: /var/folders/sw/s26whz2n6pbfv14p7p8hkdxw00000w/T/tmp06vCzR.mozrunner/minidumps/01E914E3-ECDF-4925-AC16-B98895F3C27D.dmp 16:29:17 INFO - Operating system: Mac OS X 16:29:17 INFO - 10.10.5 14F27 16:29:17 INFO - CPU: amd64 16:29:17 INFO - family 6 model 69 stepping 1 16:29:17 INFO - 4 CPUs 16:29:17 INFO - Crash reason: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS 16:29:17 INFO - Crash address: 0x0 16:29:17 INFO - Process uptime: 607 seconds 16:29:17 INFO - Thread 0 (crashed) 16:29:17 INFO - 0 XUL!JSObject* js::gc::GCRuntime::tryNewNurseryObject<(js::AllowGC)1>(JSContext*, unsigned long, unsigned long, js::Class const*) [Allocator.cpp:02765e63d907 : 79 + 0x0] 16:29:17 INFO - rax = 0x0000000000000000 rdx = 0x00007fff7a6171f8 16:29:17 INFO - rcx = 0x0000000000000000 rbx = 0x00007fff7a617c50 16:29:17 INFO - rsi = 0x000e5a00000e5a00 rdi = 0x000e5900000e5a03 16:29:17 INFO - rbp = 0x00007fff5df640d0 rsp = 0x00007fff5df640a0 16:29:17 INFO - r8 = 0x00007fff5df64050 r9 = 0x00007fff7a3a6300 16:29:17 INFO - r10 = 0x0000000000000001 r11 = 0x0000000000000202 16:29:17 INFO - r12 = 0x0000000000000060 r13 = 0x000000011106f498 16:29:17 INFO - r14 = 0x0000000000000009 r15 = 0x0000000000000000 16:29:17 INFO - rip = 0x000000010716937c 16:29:17 INFO - Found by: given as instruction pointer in context 16:29:17 INFO - 1 XUL!JSObject* js::Allocate<JSObject, (js::AllowGC)1>(js::ExclusiveContext*, js::gc::AllocKind, unsigned long, js::gc::InitialHeap, js::Class const*) [Allocator.cpp:02765e63d907 : 51 + 0x15] 16:29:17 INFO - rbx = 0x000000011106f498 rbp = 0x00007fff5df64120 16:29:17 INFO - rsp = 0x00007fff5df640e0 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x00000001089ece70 r14 = 0x0000000000000009 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000107168fbc 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 2 XUL!JSObject::create(js::ExclusiveContext*, js::gc::AllocKind, js::gc::InitialHeap, JS::Handle<js::Shape*>, JS::Handle<js::ObjectGroup*>) [jsobjinlines.h:02765e63d907 : 360 + 0xe] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df64170 16:29:17 INFO - rsp = 0x00007fff5df64130 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x0000000000000000 r14 = 0x0000000000000009 16:29:17 INFO - r15 = 0x00000001089ece70 rip = 0x0000000106d29233 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 3 XUL!NewObject [jsobj.cpp:02765e63d907 : 671 + 0xe] 16:29:17 INFO - rbx = 0x00000001089ece70 rbp = 0x00007fff5df641e0 16:29:17 INFO - rsp = 0x00007fff5df64180 r12 = 0x0000000000000009 16:29:17 INFO - r13 = 0x000000011106f000 r14 = 0x00007fff5df641a0 16:29:17 INFO - r15 = 0x00007fff5df64230 rip = 0x0000000106d03156 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 4 XUL!js::NewObjectWithGivenTaggedProto(js::ExclusiveContext*, js::Class const*, JS::Handle<js::TaggedProto>, js::gc::AllocKind, js::NewObjectKind, unsigned int) [jsobj.cpp:02765e63d907 : 731 + 0xf] 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df64260 16:29:17 INFO - rsp = 0x00007fff5df641f0 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x00007fff5df642a0 r14 = 0x00000001089ece70 16:29:17 INFO - r15 = 0x0000000000000009 rip = 0x0000000106d0299a 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 5 XUL!NewDateObject [jsobjinlines.h:02765e63d907 : 709 + 0x1d] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df642d0 16:29:17 INFO - rsp = 0x00007fff5df64270 r12 = 0x00007fff5df642a0 16:29:17 INFO - r13 = 0x00007fff5df64290 r14 = 0x00007fff5df64308 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106cc3c7d 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 6 XUL!js::DateConstructor(JSContext*, unsigned int, JS::Value*) [jsdate.cpp:02765e63d907 : 3095 + 0x10] 16:29:17 INFO - rbx = 0xffff800000000000 rbp = 0x00007fff5df643a0 16:29:17 INFO - rsp = 0x00007fff5df642e0 r12 = 0x0000000111a26210 16:29:17 INFO - r13 = 0x000000011106f000 r14 = 0xfffa000000000000 16:29:17 INFO - r15 = 0x0000000111a26200 rip = 0x0000000106c7cdcd 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 7 XUL!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:02765e63d907 : 235 + 0x6] 16:29:17 INFO - rbx = 0x0000000111a26218 rbp = 0x00007fff5df643f0 16:29:17 INFO - rsp = 0x00007fff5df643b0 r12 = 0x00007fff5df64670 16:29:17 INFO - r13 = 0x00007fff5df643c0 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000106c7c8f0 rip = 0x0000000106ea802e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 8 XUL!js::CallJSNativeConstructor(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:02765e63d907 : 268 + 0xe] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df64440 16:29:17 INFO - rsp = 0x00007fff5df64400 r12 = 0x00007fff5df64670 16:29:17 INFO - r13 = 0x00007fff5df64400 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000106c7c8f0 rip = 0x0000000106ede00b 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 9 XUL!InternalConstruct [Interpreter.cpp:02765e63d907 : 544 + 0xb] 16:29:17 INFO - rbx = 0x00007fff5df64670 rbp = 0x00007fff5df64490 16:29:17 INFO - rsp = 0x00007fff5df64450 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df64450 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0xfffe7fffffffffff rip = 0x0000000106ea8964 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 10 XUL!js::ConstructFromStack(JSContext*, JS::CallArgs const&) [Interpreter.cpp:02765e63d907 : 582 + 0xb] 16:29:17 INFO - rbx = 0x00007fff5df64670 rbp = 0x00007fff5df644b0 16:29:17 INFO - rsp = 0x00007fff5df644a0 r12 = 0x0000000000000000 16:29:17 INFO - r13 = 0x000000011106f000 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000000000001 rip = 0x0000000106ea8501 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 11 XUL!Interpret [Interpreter.cpp:02765e63d907 : 2873 + 0x8] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df649e0 16:29:17 INFO - rsp = 0x00007fff5df644c0 r12 = 0x0000000000000000 16:29:17 INFO - r13 = 0x000000011106f000 r14 = 0x00007fff5df648a0 16:29:17 INFO - r15 = 0x0000000000000001 rip = 0x0000000106ea01d7 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 12 XUL!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:02765e63d907 : 399 + 0xb] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df64aa0 16:29:17 INFO - rsp = 0x00007fff5df649f0 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df64b90 r14 = 0x00007fff5df64ad0 16:29:17 INFO - r15 = 0x00000001164d9280 rip = 0x0000000106e9747a 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 13 XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:02765e63d907 : 471 + 0x8] 16:29:17 INFO - rbx = 0x0000000000000004 rbp = 0x00007fff5df64b30 16:29:17 INFO - rsp = 0x00007fff5df64ab0 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df64b90 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106ea7b6d 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 14 XUL!<name omitted> [Interpreter.cpp:02765e63d907 : 517 + 0x8] 16:29:17 INFO - rbx = 0x00007fff5df64b90 rbp = 0x00007fff5df64b50 16:29:17 INFO - rsp = 0x00007fff5df64b40 r12 = 0x00007fff5df64b78 16:29:17 INFO - r13 = 0x00007fff5df64e38 r14 = 0x00007fff5df64d90 16:29:17 INFO - r15 = 0x000000011106f000 rip = 0x0000000106ea849e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 15 XUL!JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) [jsapi.cpp:02765e63d907 : 2780 + 0x12] 16:29:17 INFO - rbx = 0x00007fff5df64ba8 rbp = 0x00007fff5df64c70 16:29:17 INFO - rsp = 0x00007fff5df64b60 r12 = 0x00007fff5df64b78 16:29:17 INFO - r13 = 0x00007fff5df64e38 r14 = 0x00007fff5df64ba8 16:29:17 INFO - r15 = 0x000000011106f000 rip = 0x0000000106c3d8a6 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 16 XUL!nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) [XPCWrappedJSClass.cpp:02765e63d907 : 1211 + 0x5] 16:29:17 INFO - rbx = 0x00007fff5df64d80 rbp = 0x00007fff5df650c0 16:29:17 INFO - rsp = 0x00007fff5df64c80 r12 = 0x00007fff5df64e20 16:29:17 INFO - r13 = 0x000000011198cc40 r14 = 0x0000000111144d58 16:29:17 INFO - r15 = 0x000000011106f000 rip = 0x0000000102e512d7 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 17 XUL!PrepareAndDispatch [xptcstubs_x86_64_darwin.cpp:02765e63d907 : 122 + 0xc] 16:29:17 INFO - rbx = 0x00007fff5df65110 rbp = 0x00007fff5df651c0 16:29:17 INFO - rsp = 0x00007fff5df650d0 r12 = 0x000000011401bc40 16:29:17 INFO - r13 = 0x0000000000000003 r14 = 0x0000000000000004 16:29:17 INFO - r15 = 0x6800448422e3c062 rip = 0x000000010241a2f1 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 18 XUL!SharedStub + 0x5b 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df65240 16:29:17 INFO - rsp = 0x00007fff5df651d0 r12 = 0x000000010b36b468 16:29:17 INFO - r13 = 0x000000010739404b r14 = 0x0000000000000000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x000000010241900b 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 19 XUL!nsObserverService::NotifyObservers(nsISupports*, char const*, char16_t const*) [nsObserverList.cpp:02765e63d907 : 112 + 0xf] 16:29:17 INFO - rbp = 0x00007fff5df65280 rsp = 0x00007fff5df65250 16:29:17 INFO - rip = 0x00000001023ac1af 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 20 XUL!XPCJSRuntime::BeginCycleCollectionCallback() [XPCJSRuntime.cpp:02765e63d907 : 676 + 0x11] 16:29:17 INFO - rbx = 0x000000010b3c3000 rbp = 0x00007fff5df652b0 16:29:17 INFO - rsp = 0x00007fff5df65290 r12 = 0x0000000000000000 16:29:17 INFO - r13 = 0x000000010b3c3000 r14 = 0x0000000000000001 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000102e19a4f 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 21 XUL!nsCycleCollector::BeginCollection(ccType, nsICycleCollectorListener*) [nsCycleCollector.cpp:02765e63d907 : 3804 + 0x6] 16:29:17 INFO - rbx = 0x000000010b3c3000 rbp = 0x00007fff5df65300 16:29:17 INFO - rsp = 0x00007fff5df652c0 r12 = 0x0000000000000000 16:29:17 INFO - r13 = 0x000000010b3c3000 r14 = 0x0000000000000001 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000102374832 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 22 XUL!nsCycleCollector::Collect(ccType, js::SliceBudget&, nsICycleCollectorListener*, bool) [nsCycleCollector.cpp:02765e63d907 : 3662 + 0xf] 16:29:17 INFO - rbx = 0x000000010b3c3000 rbp = 0x00007fff5df65380 16:29:17 INFO - rsp = 0x00007fff5df65310 r12 = 0x00007fff5df65398 16:29:17 INFO - r13 = 0x0000000000000001 r14 = 0x00000001023746ec 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x00000001023743f1 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 23 XUL!nsCycleCollector_collect(nsICycleCollectorListener*) [nsCycleCollector.cpp:02765e63d907 : 4156 + 0x10] 16:29:17 INFO - rbx = 0x0000000101fb6000 rbp = 0x00007fff5df653e0 16:29:17 INFO - rsp = 0x00007fff5df65390 r12 = 0x00007fff5df65458 16:29:17 INFO - r13 = 0x0000000000000001 r14 = 0x0000000000000000 16:29:17 INFO - r15 = 0x0000000101ff7670 rip = 0x00000001023764c4 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 24 XUL!nsJSContext::CycleCollectNow(nsICycleCollectorListener*, int) [nsJSEnvironment.cpp:02765e63d907 : 1444 + 0x8] 16:29:17 INFO - rbx = 0x0000000108ac5d08 rbp = 0x00007fff5df65420 16:29:17 INFO - rsp = 0x00007fff5df653f0 r12 = 0x00007fff5df65458 16:29:17 INFO - r13 = 0x0000000000000001 r14 = 0x0000000000000000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x00000001036d73f2 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 25 XUL!XPCJSRuntime::DoCycleCollectionCallback(JSContext*) [XPCJSRuntime.cpp:02765e63d907 : 732 + 0x9] 16:29:17 INFO - rbx = 0x0000000101f5d800 rbp = 0x00007fff5df65440 16:29:17 INFO - rsp = 0x00007fff5df65430 r12 = 0x00007fff5df65458 16:29:17 INFO - r13 = 0x0000000000000001 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x00000000000000f4 rip = 0x0000000102e19d80 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 26 XUL!js::gc::GCRuntime::maybeDoCycleCollection() [jsgc.cpp:02765e63d907 : 1497 + 0x5] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df654b0 16:29:17 INFO - rsp = 0x00007fff5df65450 r12 = 0x00007fff5df65458 16:29:17 INFO - r13 = 0x0000000000000001 r14 = 0x000000011106f498 16:29:17 INFO - r15 = 0x00000000000000f4 rip = 0x0000000106cb66fd 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 27 XUL!js::gc::GCRuntime::collect(bool, js::SliceBudget, JS::gcreason::Reason) [jsgc.cpp:02765e63d907 : 6287 + 0x8] 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df65590 16:29:17 INFO - rsp = 0x00007fff5df654c0 r12 = 0x00007fff5df654f8 16:29:17 INFO - r13 = 0x0000000000000001 r14 = 0x000000011106f498 16:29:17 INFO - r15 = 0x0000000000000008 rip = 0x0000000106cb6d99 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 28 XUL!js::gc::FinishGC(JSContext*) [jsgc.cpp:02765e63d907 : 6357 + 0x2c] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df655f0 16:29:17 INFO - rsp = 0x00007fff5df655a0 r12 = 0x000000011106f1e8 16:29:17 INFO - r13 = 0x0000000124f67800 r14 = 0x00007fff5df656b8 16:29:17 INFO - r15 = 0x00007fff5df65838 rip = 0x0000000106c9941e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 29 XUL!<name omitted> [jsgc.cpp:02765e63d907 : 6553 + 0x8] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df65610 16:29:17 INFO - rsp = 0x00007fff5df65600 r12 = 0x000000011106f1e8 16:29:17 INFO - r13 = 0x0000000124f67800 r14 = 0x00007fff5df656b8 16:29:17 INFO - r15 = 0x00007fff5df65838 rip = 0x0000000106cb7c39 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 30 XUL!js::IterateScripts(JSContext*, JSCompartment*, void*, void (*)(JSRuntime*, void*, JSScript*)) [Iteration.cpp:02765e63d907 : 87 + 0xd] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df65730 16:29:17 INFO - rsp = 0x00007fff5df65620 r12 = 0x000000011106f1e8 16:29:17 INFO - r13 = 0x0000000124f67800 r14 = 0x0000000106e49570 16:29:17 INFO - r15 = 0x00007fff5df65838 rip = 0x00000001071758f1 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 31 XUL!js::Debugger::ScriptQuery::findScripts() [Debugger.cpp:02765e63d907 : 4187 + 0xf] 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df657f0 16:29:17 INFO - rsp = 0x00007fff5df65740 r12 = 0x00007fff5df65838 16:29:17 INFO - r13 = 0x00ffffffffffffff r14 = 0x00007fff5df65be0 16:29:17 INFO - r15 = 0x00000001136d2000 rip = 0x0000000106e10d49 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 32 XUL!js::Debugger::findScripts(JSContext*, unsigned int, JS::Value*) [Debugger.cpp:02765e63d907 : 4487 + 0x5] 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df65a70 16:29:17 INFO - rsp = 0x00007fff5df65800 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x00007fff5df65bf0 r14 = 0x00007fff5df65be0 16:29:17 INFO - r15 = 0x00000001136d2000 rip = 0x0000000106e100cc 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 33 XUL!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:02765e63d907 : 235 + 0x6] 16:29:17 INFO - rbx = 0x00007fff5df65bf0 rbp = 0x00007fff5df65ac0 16:29:17 INFO - rsp = 0x00007fff5df65a80 r12 = 0x00007fff5df65b88 16:29:17 INFO - r13 = 0x00007fff5df65a90 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000106e0fec0 rip = 0x0000000106ea802e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 34 XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:02765e63d907 : 441 + 0xe] 16:29:17 INFO - rbx = 0x0000000000000001 rbp = 0x00007fff5df65b50 16:29:17 INFO - rsp = 0x00007fff5df65ad0 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df65b88 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106ea7bd9 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 35 XUL!<name omitted> [Interpreter.cpp:02765e63d907 : 517 + 0x8] 16:29:17 INFO - rbx = 0x00007fff5df65b88 rbp = 0x00007fff5df65b70 16:29:17 INFO - rsp = 0x00007fff5df65b60 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x00007fff5df65c30 r14 = 0x0000000111a26130 16:29:17 INFO - r15 = 0x00007fff5df65ba0 rip = 0x0000000106ea849e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 36 XUL!js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [Wrapper.cpp:02765e63d907 : 165 + 0x8] 16:29:17 INFO - rbx = 0x00007fff5df65d80 rbp = 0x00007fff5df65c70 16:29:17 INFO - rsp = 0x00007fff5df65b80 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x00007fff5df65c30 r14 = 0x00007fff5df65d88 16:29:17 INFO - r15 = 0x00007fff5df65ba0 rip = 0x0000000106dd8b4f 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 37 XUL!js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [CrossCompartmentWrapper.cpp:02765e63d907 : 333 + 0x12] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df65ce0 16:29:17 INFO - rsp = 0x00007fff5df65c80 r12 = 0x0000000000000001 16:29:17 INFO - r13 = 0x0000000000000000 r14 = 0x00007fff5df65d88 16:29:17 INFO - r15 = 0x00007fff5df65d80 rip = 0x0000000106d844d5 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 38 XUL!js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [Proxy.cpp:02765e63d907 : 401 + 0x13] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df65d60 16:29:17 INFO - rsp = 0x00007fff5df65cf0 r12 = 0x0000000108b0bc10 16:29:17 INFO - r13 = 0x00000001089f0ee8 r14 = 0x00007fff5df65d88 16:29:17 INFO - r15 = 0x00007fff5df65d80 rip = 0x0000000106d8a9ae 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 39 XUL!js::proxy_Call(JSContext*, unsigned int, JS::Value*) [Proxy.cpp:02765e63d907 : 690 + 0x8] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df65db0 16:29:17 INFO - rsp = 0x00007fff5df65d70 r12 = 0x00007fff5df66050 16:29:17 INFO - r13 = 0x00007fff5df65dd0 r14 = 0x00007fff5df65d70 16:29:17 INFO - r15 = 0x0000000106d8c2a0 rip = 0x0000000106d8c35b 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 40 XUL!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:02765e63d907 : 235 + 0x6] 16:29:17 INFO - rbx = 0x0000000111a26140 rbp = 0x00007fff5df65e00 16:29:17 INFO - rsp = 0x00007fff5df65dc0 r12 = 0x00007fff5df66050 16:29:17 INFO - r13 = 0x00007fff5df65dd0 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000106d8c2a0 rip = 0x0000000106ea802e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 41 XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:02765e63d907 : 441 + 0xe] 16:29:17 INFO - rbx = 0x0000000000000001 rbp = 0x00007fff5df65e90 16:29:17 INFO - rsp = 0x00007fff5df65e10 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df66050 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106ea7bd9 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 42 XUL!Interpret [Interpreter.cpp:02765e63d907 : 504 + 0x8] 16:29:17 INFO - rbx = 0x0000000111a26130 rbp = 0x00007fff5df663c0 16:29:17 INFO - rsp = 0x00007fff5df65ea0 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x000000011106f000 r14 = 0x00007fff5df66280 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106ea0236 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 43 XUL!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:02765e63d907 : 399 + 0xb] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df66480 16:29:17 INFO - rsp = 0x00007fff5df663d0 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df665c8 r14 = 0x00007fff5df664b0 16:29:17 INFO - r15 = 0x000000012c529040 rip = 0x0000000106e9747a 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 44 XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:02765e63d907 : 471 + 0x8] 16:29:17 INFO - rbx = 0x0000000000000003 rbp = 0x00007fff5df66510 16:29:17 INFO - rsp = 0x00007fff5df66490 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df665c8 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106ea7b6d 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 45 XUL!js::jit::DoCallFallback [BaselineIC.cpp:02765e63d907 : 5989 + 0x8] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df667b0 16:29:17 INFO - rsp = 0x00007fff5df66520 r12 = 0xffff800000000000 16:29:17 INFO - r13 = 0x00007fff5df665b0 r14 = 0x000000000000003a 16:29:17 INFO - r15 = 0x000000011109a5cb rip = 0x0000000106874068 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 46 0x10b570471 16:29:17 INFO - rbx = 0xfffe00012d111740 rbp = 0x00007fff5df66838 16:29:17 INFO - rsp = 0x00007fff5df667c0 r12 = 0x0000000000000008 16:29:17 INFO - r13 = 0x00007fff5df671d0 r14 = 0x000000012d111740 16:29:17 INFO - r15 = 0x0000000000000001 rip = 0x000000010b570471 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 47 0x12b0721a8 16:29:17 INFO - rbp = 0x00007fff5df668c8 rsp = 0x00007fff5df66848 16:29:17 INFO - rip = 0x000000012b0721a8 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 48 0x10b568e1d 16:29:17 INFO - rbp = 0x00007fff5df66940 rsp = 0x00007fff5df668d8 16:29:17 INFO - rip = 0x000000010b568e1d 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 49 XUL!EnterBaseline [BaselineJIT.cpp:02765e63d907 : 155 + 0xc] 16:29:17 INFO - rbp = 0x00007fff5df66c50 rsp = 0x00007fff5df66950 16:29:17 INFO - rip = 0x00000001068a54b9 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 50 XUL!js::jit::EnterBaselineMethod(JSContext*, js::RunState&) [BaselineJIT.cpp:02765e63d907 : 194 + 0x8] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df66d70 16:29:17 INFO - rsp = 0x00007fff5df66c60 r12 = 0x00007fff5df66c98 16:29:17 INFO - r13 = 0x00007fff5df66f78 r14 = 0x00007fff5df66e60 16:29:17 INFO - r15 = 0x0000000000000001 rip = 0x00000001068a512f 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 51 XUL!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:02765e63d907 : 389 + 0xb] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df66e30 16:29:17 INFO - rsp = 0x00007fff5df66d80 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df66f78 r14 = 0x00007fff5df66e60 16:29:17 INFO - r15 = 0x0000000113b9e100 rip = 0x0000000106e97446 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 52 XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:02765e63d907 : 471 + 0x8] 16:29:17 INFO - rbx = 0x0000000000000003 rbp = 0x00007fff5df66ec0 16:29:17 INFO - rsp = 0x00007fff5df66e40 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df66f78 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106ea7b6d 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 53 XUL!js::jit::DoCallFallback [BaselineIC.cpp:02765e63d907 : 5989 + 0x8] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df67160 16:29:17 INFO - rsp = 0x00007fff5df66ed0 r12 = 0xffff800000000000 16:29:17 INFO - r13 = 0x00007fff5df66f60 r14 = 0x000000000000003a 16:29:17 INFO - r15 = 0x0000000126a59ab1 rip = 0x0000000106874068 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 54 0x10b570471 16:29:17 INFO - rbx = 0xfffe000111700510 rbp = 0x00007fff5df671e8 16:29:17 INFO - rsp = 0x00007fff5df67170 r12 = 0x0000000000000000 16:29:17 INFO - r13 = 0x00007fff5df679b8 r14 = 0x0000000111700510 16:29:17 INFO - r15 = 0x000000011181d3a0 rip = 0x000000010b570471 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 55 0x140df7250 16:29:17 INFO - rbp = 0x00007fff5df67288 rsp = 0x00007fff5df671f8 16:29:17 INFO - rip = 0x0000000140df7250 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 56 0x108d40514 16:29:17 INFO - rbp = 0x00007fff5df672c0 rsp = 0x00007fff5df67298 16:29:17 INFO - rip = 0x0000000108d40514 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 57 0x11366d4f0 16:29:17 INFO - rbp = 0x00007fff5df67338 rsp = 0x00007fff5df672d0 16:29:17 INFO - rip = 0x000000011366d4f0 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 58 0x10b568e1d 16:29:17 INFO - rbp = 0x00007fff5df673a0 rsp = 0x00007fff5df67348 16:29:17 INFO - rip = 0x000000010b568e1d 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 59 XUL!EnterBaseline [BaselineJIT.cpp:02765e63d907 : 155 + 0xc] 16:29:17 INFO - rbp = 0x00007fff5df676b0 rsp = 0x00007fff5df673b0 16:29:17 INFO - rip = 0x00000001068a54b9 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 60 XUL!js::jit::EnterBaselineMethod(JSContext*, js::RunState&) [BaselineJIT.cpp:02765e63d907 : 194 + 0x8] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df677d0 16:29:17 INFO - rsp = 0x00007fff5df676c0 r12 = 0x00007fff5df676f8 16:29:17 INFO - r13 = 0x00007fff5df67958 r14 = 0x00007fff5df678c0 16:29:17 INFO - r15 = 0x0000000000000001 rip = 0x00000001068a512f 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 61 XUL!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:02765e63d907 : 389 + 0xb] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df67890 16:29:17 INFO - rsp = 0x00007fff5df677e0 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df67958 r14 = 0x00007fff5df678c0 16:29:17 INFO - r15 = 0x000000012ba61d00 rip = 0x0000000106e97446 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 62 XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:02765e63d907 : 471 + 0x8] 16:29:17 INFO - rbx = 0x0000000000000002 rbp = 0x00007fff5df67920 16:29:17 INFO - rsp = 0x00007fff5df678a0 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df67958 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106ea7b6d 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 63 XUL!<name omitted> [Interpreter.cpp:02765e63d907 : 517 + 0x8] 16:29:17 INFO - rbx = 0x00007fff5df67958 rbp = 0x00007fff5df67940 16:29:17 INFO - rsp = 0x00007fff5df67930 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x00007fff5df67a00 r14 = 0x00007fff5df67d18 16:29:17 INFO - r15 = 0x00007fff5df67970 rip = 0x0000000106ea849e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 64 XUL!js::Wrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [Wrapper.cpp:02765e63d907 : 165 + 0x8] 16:29:17 INFO - rbx = 0x00007fff5df67b50 rbp = 0x00007fff5df67a40 16:29:17 INFO - rsp = 0x00007fff5df67950 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x00007fff5df67a00 r14 = 0x00007fff5df67b58 16:29:17 INFO - r15 = 0x00007fff5df67970 rip = 0x0000000106dd8b4f 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 65 XUL!js::CrossCompartmentWrapper::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) const [CrossCompartmentWrapper.cpp:02765e63d907 : 333 + 0x12] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df67ab0 16:29:17 INFO - rsp = 0x00007fff5df67a50 r12 = 0x0000000000000001 16:29:17 INFO - r13 = 0x0000000000000001 r14 = 0x00007fff5df67b58 16:29:17 INFO - r15 = 0x00007fff5df67b50 rip = 0x0000000106d844d5 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 66 XUL!js::Proxy::call(JSContext*, JS::Handle<JSObject*>, JS::CallArgs const&) [Proxy.cpp:02765e63d907 : 401 + 0x13] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df67b30 16:29:17 INFO - rsp = 0x00007fff5df67ac0 r12 = 0x0000000108b0bc10 16:29:17 INFO - r13 = 0x00000001089f0ee8 r14 = 0x00007fff5df67b58 16:29:17 INFO - r15 = 0x00007fff5df67b50 rip = 0x0000000106d8a9ae 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 67 XUL!js::proxy_Call(JSContext*, unsigned int, JS::Value*) [Proxy.cpp:02765e63d907 : 690 + 0x8] 16:29:17 INFO - rbx = 0x000000011106f000 rbp = 0x00007fff5df67b80 16:29:17 INFO - rsp = 0x00007fff5df67b40 r12 = 0x00007fff5df67cc0 16:29:17 INFO - r13 = 0x00007fff5df67ba0 r14 = 0x00007fff5df67b40 16:29:17 INFO - r15 = 0x0000000106d8c2a0 rip = 0x0000000106d8c35b 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 68 XUL!js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) [jscntxtinlines.h:02765e63d907 : 235 + 0x6] 16:29:17 INFO - rbx = 0x00007fff5df67d30 rbp = 0x00007fff5df67bd0 16:29:17 INFO - rsp = 0x00007fff5df67b90 r12 = 0x00007fff5df67cc0 16:29:17 INFO - r13 = 0x00007fff5df67ba0 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000106d8c2a0 rip = 0x0000000106ea802e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 69 XUL!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [Interpreter.cpp:02765e63d907 : 441 + 0xe] 16:29:17 INFO - rbx = 0x0000000000000002 rbp = 0x00007fff5df67c60 16:29:17 INFO - rsp = 0x00007fff5df67be0 r12 = 0xfffdffffffffffff 16:29:17 INFO - r13 = 0x00007fff5df67cc0 r14 = 0x000000011106f000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000106ea7bd9 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 70 XUL!<name omitted> [Interpreter.cpp:02765e63d907 : 517 + 0x8] 16:29:17 INFO - rbx = 0x00007fff5df67cc0 rbp = 0x00007fff5df67c80 16:29:17 INFO - rsp = 0x00007fff5df67c70 r12 = 0x00007fff5df67ca8 16:29:17 INFO - r13 = 0x00007fff5df67f98 r14 = 0x00007fff5df67f70 16:29:17 INFO - r15 = 0x000000011106f000 rip = 0x0000000106ea849e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 71 XUL!JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) [jsapi.cpp:02765e63d907 : 2780 + 0x12] 16:29:17 INFO - rbx = 0x00007fff5df67cd8 rbp = 0x00007fff5df67da0 16:29:17 INFO - rsp = 0x00007fff5df67c90 r12 = 0x00007fff5df67ca8 16:29:17 INFO - r13 = 0x00007fff5df67f98 r14 = 0x00007fff5df67cd8 16:29:17 INFO - r15 = 0x000000011106f000 rip = 0x0000000106c3d8a6 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 72 XUL!nsFrameMessageManager::ReceiveMessage(nsISupports*, nsIFrameLoader*, bool, nsAString_internal const&, bool, mozilla::dom::ipc::StructuredCloneData*, mozilla::jsipc::CpowHolder*, nsIPrincipal*, nsTArray<mozilla::dom::ipc::StructuredCloneData>*) [nsFrameMessageManager.cpp:02765e63d907 : 1289 + 0x5] 16:29:17 INFO - rbx = 0x00007fff5df67f58 rbp = 0x00007fff5df68200 16:29:17 INFO - rsp = 0x00007fff5df67db0 r12 = 0x000000011106f000 16:29:17 INFO - r13 = 0x0000000127cdeac0 r14 = 0x00007fff5df68008 16:29:17 INFO - r15 = 0x0000000000000001 rip = 0x00000001034e1c83 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 73 XUL!nsSameProcessAsyncMessageBase::ReceiveMessage(nsISupports*, nsIFrameLoader*, nsFrameMessageManager*) [nsFrameMessageManager.cpp:02765e63d907 : 1096 + 0x32] 16:29:17 INFO - rbx = 0x00000001380fd428 rbp = 0x00007fff5df68280 16:29:17 INFO - rsp = 0x00007fff5df68210 r12 = 0x0000000117647530 16:29:17 INFO - r13 = 0x00000001086cfc90 r14 = 0x0000000112d6bd40 16:29:17 INFO - r15 = 0x0000000118d23e30 rip = 0x00000001034e68a5 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 74 XUL!nsAsyncMessageToChild::Run() [nsFrameLoader.cpp:02765e63d907 : 2784 + 0xb] 16:29:17 INFO - rbx = 0x0000000118d23eb0 rbp = 0x00007fff5df682c0 16:29:17 INFO - rsp = 0x00007fff5df68290 r12 = 0x0000000101f24200 16:29:17 INFO - r13 = 0x0000000101f24250 r14 = 0x00000001380fd428 16:29:17 INFO - r15 = 0x0000000118d23e30 rip = 0x00000001036ec502 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 75 XUL!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:02765e63d907 : 1058 + 0x6] 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df68370 16:29:17 INFO - rsp = 0x00007fff5df682d0 r12 = 0x0000000101f24200 16:29:17 INFO - r13 = 0x0000000101f24250 r14 = 0x0000000101f24200 16:29:17 INFO - r15 = 0x0000000101f24220 rip = 0x0000000102405f31 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 76 XUL!NS_ProcessPendingEvents(nsIThread*, unsigned int) [nsThreadUtils.cpp:02765e63d907 : 232 + 0xf] 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df683b0 16:29:17 INFO - rsp = 0x00007fff5df68380 r12 = 0x00007fff5df68387 16:29:17 INFO - r13 = 0x0000000101f24200 r14 = 0x000000000000000a 16:29:17 INFO - r15 = 0x000000000026e5ac rip = 0x000000010244541f 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 77 XUL!nsBaseAppShell::NativeEventCallback() [nsBaseAppShell.cpp:02765e63d907 : 97 + 0xa] 16:29:17 INFO - rbx = 0x0000000111c17ce0 rbp = 0x00007fff5df683e0 16:29:17 INFO - rsp = 0x00007fff5df683c0 r12 = 0x0000000000000000 16:29:17 INFO - r13 = 0x0000000000002403 r14 = 0x0000000101f24200 16:29:17 INFO - r15 = 0x0000000111c17c00 rip = 0x0000000105154e31 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 78 XUL!nsAppShell::ProcessGeckoEvents(void*) [nsAppShell.mm:02765e63d907 : 386 + 0x8] 16:29:17 INFO - rbx = 0x00007fa90bf02270 rbp = 0x00007fff5df68430 16:29:17 INFO - rsp = 0x00007fff5df683f0 r12 = 0x00007fa90bf065c0 16:29:17 INFO - r13 = 0x0000000000002403 r14 = 0x0000000101fb6000 16:29:17 INFO - r15 = 0x0000000111c17ce0 rip = 0x00000001051bde51 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 79 CoreFoundation!__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 0x11 16:29:17 INFO - rbx = 0x00007fa90bf02270 rbp = 0x00007fff5df68440 16:29:17 INFO - rsp = 0x00007fff5df68440 r12 = 0x00007fa90bf065c0 16:29:17 INFO - r13 = 0x0000000000002403 r14 = 0x00007fa90bf065d8 16:29:17 INFO - r15 = 0x00007fa90bf02188 rip = 0x00007fff96cfea01 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 80 CoreFoundation!__CFRunLoopDoSources0 + 0x10d 16:29:17 INFO - rbp = 0x00007fff5df684a0 rsp = 0x00007fff5df68450 16:29:17 INFO - rip = 0x00007fff96cf0b8d 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 81 CoreFoundation!__CFRunLoopRun + 0x39f 16:29:17 INFO - rbp = 0x00007fff5df69180 rsp = 0x00007fff5df684b0 16:29:17 INFO - rip = 0x00007fff96cf01bf 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 82 CoreFoundation!CFRunLoopRunSpecific + 0x128 16:29:17 INFO - rbp = 0x00007fff5df691e0 rsp = 0x00007fff5df69190 16:29:17 INFO - rip = 0x00007fff96cefbd8 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 83 HIToolbox!RunCurrentEventLoopInMode + 0xeb 16:29:17 INFO - rbp = 0x00007fff5df69220 rsp = 0x00007fff5df691f0 16:29:17 INFO - rip = 0x00007fff9168556f 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 84 HIToolbox!ReceiveNextEventCommon + 0x1af 16:29:17 INFO - rbp = 0x00007fff5df692a0 rsp = 0x00007fff5df69230 16:29:17 INFO - rip = 0x00007fff916852ea 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 85 HIToolbox!_BlockUntilNextEventMatchingListInModeWithFilter + 0x47 16:29:17 INFO - rbp = 0x00007fff5df692c0 rsp = 0x00007fff5df692b0 16:29:17 INFO - rip = 0x00007fff9168512b 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 86 AppKit!_DPSNextEvent + 0x3d2 16:29:17 INFO - rbp = 0x00007fff5df69730 rsp = 0x00007fff5df692d0 16:29:17 INFO - rip = 0x00007fff8aa6c8ab 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 87 AppKit!-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 0x15a 16:29:17 INFO - rbp = 0x00007fff5df699d0 rsp = 0x00007fff5df69740 16:29:17 INFO - rip = 0x00007fff8aa6be58 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 88 XUL!-[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] [nsAppShell.mm:02765e63d907 : 121 + 0x2c] 16:29:17 INFO - rbp = 0x00007fff5df69a20 rsp = 0x00007fff5df699e0 16:29:17 INFO - rip = 0x00000001051bd166 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 89 AppKit!-[NSApplication run] + 0x252 16:29:17 INFO - rbx = 0x0000000119725560 rbp = 0x00007fff5df69aa0 16:29:17 INFO - rsp = 0x00007fff5df69a30 r12 = 0x0000000000000000 16:29:17 INFO - r13 = 0x00000001191f5f40 r14 = 0x00000001191f5f40 16:29:17 INFO - r15 = 0x00007fa90c00a101 rip = 0x00007fff8aa61af3 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 90 XUL!nsAppShell::Run() [nsAppShell.mm:02765e63d907 : 660 + 0x17] 16:29:17 INFO - rbp = 0x00007fff5df69af0 rsp = 0x00007fff5df69ab0 16:29:17 INFO - rip = 0x00000001051be545 16:29:17 INFO - Found by: previous frame's frame pointer 16:29:17 INFO - 91 XUL!nsAppStartup::Run() [nsAppStartup.cpp:02765e63d907 : 284 + 0x6] 16:29:17 INFO - rbx = 0x0000000111923600 rbp = 0x00007fff5df69b10 16:29:17 INFO - rsp = 0x00007fff5df69b00 r14 = 0x00007fff5df69f99 16:29:17 INFO - r15 = 0x000000010243f7a0 rip = 0x0000000105e184a1 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 92 XUL!XREMain::XRE_mainRun() [nsAppRunner.cpp:02765e63d907 : 4306 + 0x6] 16:29:17 INFO - rbx = 0x000000011656b400 rbp = 0x00007fff5df69db0 16:29:17 INFO - rsp = 0x00007fff5df69b20 r14 = 0x00007fff5df69f99 16:29:17 INFO - r15 = 0x000000010243f7a0 rip = 0x0000000105ea66b8 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 93 XUL!XREMain::XRE_main(int, char**, nsXREAppData const*) [nsAppRunner.cpp:02765e63d907 : 4433 + 0x8] 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df69e20 16:29:17 INFO - rsp = 0x00007fff5df69dc0 r12 = 0x0000000000000001 16:29:17 INFO - r13 = 0x0000000000000005 r14 = 0x00007fff5df69e30 16:29:17 INFO - r15 = 0x00007fff5df6a490 rip = 0x0000000105ea70e3 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 94 XUL!XRE_main [nsAppRunner.cpp:02765e63d907 : 4524 + 0x11] 16:29:17 INFO - rbx = 0x00007fff5df69f58 rbp = 0x00007fff5df69fd0 16:29:17 INFO - rsp = 0x00007fff5df69e30 r12 = 0x0000000000000005 16:29:17 INFO - r13 = 0x00007fff5df69e30 r14 = 0x00007fff5df6a040 16:29:17 INFO - r15 = 0x00007fff5df6a490 rip = 0x0000000105ea7609 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 95 firefox!main [nsBrowserApp.cpp:02765e63d907 : 259 + 0x16] 16:29:17 INFO - rbx = 0x0000000101f13640 rbp = 0x00007fff5df6a470 16:29:17 INFO - rsp = 0x00007fff5df69fe0 r12 = 0x00000001023c2ea0 16:29:17 INFO - r13 = 0x0000000101f13340 r14 = 0x00007fff5df6a000 16:29:17 INFO - r15 = 0x6800448422e3c062 rip = 0x0000000101c9718e 16:29:17 INFO - Found by: call frame info 16:29:17 INFO - 96 firefox!start + 0x34 16:29:17 INFO - rbx = 0x0000000000000000 rbp = 0x00007fff5df6a480 16:29:17 INFO - rsp = 0x00007fff5df6a480 r12 = 0x0000000000000000 16:29:17 INFO - r13 = 0x0000000000000000 r14 = 0x0000000000000000 16:29:17 INFO - r15 = 0x0000000000000000 rip = 0x0000000101c969f4 16:29:17 INFO - Found by: call frame info
The main message loop calls a JS function; this calls across a cross-compartment wrapper; the target of which enters baseline; which does another call; which enters a second baseline frame; which calls across a second cross-compartment wrapper; which calls Debugger::findScripts, at which point things go south rapidly. With this already amazing stack, we js::IterateScripts, pushing an AutoEmptyNursery and then FinishGC. For some reason this triggers a COMPARTMENT_REVIVED GC, doesn't collect enough, so does a CC to collect gray. All still fine. The CycleCollector, in its infinite wisdom, uses NotifyObservers to tell everyone about the collection. This apparently allows JS scripts to listen to the cycle collector. Directly. So we call into JS with our AutoEmptyNursery still on the stack and immediately crash. The worker runtimes always trigger CC from the JSGC_END callback, so I really expected it to work. I guess that it doesn't fire observer events there because it's a worker thread? I expect we'll need to do some way to tell the CC not to run script or some way to only run the CC if it's safe to run script.
Backout by philringnalda@gmail.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/d7bf236adf77 Back out changeset bba47d5c2583 for isNurseryAllocAllowed() assertion failures in devtools tests
Ah, right, I forgot about that. Maybe the callback could post a runnable to the main thread that would run the CC, so we'd be back to the main event loop again.
That is indeed a fun one! (In reply to Andrew McCreight [:mccr8] from comment #14) > Ah, right, I forgot about that. Maybe the callback could post a runnable to > the main thread that would run the CC, so we'd be back to the main event > loop again. I was going to suggest the same thing. That stack reminds me of when the Debugger#onGarbageCollection events were fired directly after GC instead of posted to the event loop... It didn't turn out well there either ;)
Attached patch CC_after_gray_GC-v2.diff (deleted) — Splinter Review
Updated to use a Runnable to start the CC. This appears to still work fine locally.
Attachment #8783644 - Attachment is obsolete: true
Attachment #8784479 - Flags: review?(continuation)
Comment on attachment 8784479 [details] [diff] [review] CC_after_gray_GC-v2.diff Review of attachment 8784479 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/xpconnect/src/XPCJSRuntime.cpp @@ +725,5 @@ > +XPCJSRuntime::DoCycleCollectionCallback(JSContext* cx) > +{ > + // The GC has detected that a CC at this point would collect a tremendous > + // amount of garbage that is being revivified unnecessarily. > + class DoCycleCollectionRunnable : public Runnable { nit: { on next line I think. @@ +729,5 @@ > + class DoCycleCollectionRunnable : public Runnable { > + public: > + NS_IMETHOD Run() override > + { > + nsCycleCollector_collect(nullptr); nsJSContext::CycleCollectNow() please. @@ +733,5 @@ > + nsCycleCollector_collect(nullptr); > + return NS_OK; > + } > + }; > + NS_DispatchToMainThread(new DoCycleCollectionRunnable()); You could use the fancier lambda-based thing here instead of creating a new class, NS_NewRunnableFunction().
Attachment #8784479 - Flags: review?(continuation) → review+
Oh, neat! Now it's a one-liner.
https://hg.mozilla.org/integration/mozilla-inbound/rev/bbd6bdd463b1dd991c51b579c6c4d5a27945b2f8 Bug 1296484 - Automatically run a CC if COMPARTMENT_REVIVED GC ends mostly gray; r=jonco,r=mccr8
Terrence, maybe try NS_DispatchToCurrentThread instead of DispatchToMainThread? It looks like that doesn't leak on failure, which can happen late in shut down.
https://hg.mozilla.org/integration/mozilla-inbound/rev/c68fdbfcec39d5121222cfaf343bc4aed5efebb5 Bug 1296484 - Automatically run a CC if COMPARTMENT_REVIVED GC ends mostly gray; r=jonco,r=mccr8
(In reply to Andrew McCreight [:mccr8] from comment #23) > Terrence, maybe try NS_DispatchToCurrentThread instead of > DispatchToMainThread? It looks like that doesn't leak on failure, which can > happen late in shut down. Thanks for the tip!
Flags: needinfo?(terrence)
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla51
Depends on: 1301301
Terrence said this was not actually needed for bug 1237058, so I'm removing the block.
No longer blocks: 1237058
No longer depends on: 1301301
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: