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)
Core
JavaScript: GC
Tracking
()
RESOLVED
FIXED
mozilla51
Tracking | Status | |
---|---|---|
firefox51 | --- | fixed |
People
(Reporter: terrence, Assigned: terrence)
Details
Attachments
(1 file, 2 obsolete files)
(deleted),
patch
|
mccr8
:
review+
|
Details | Diff | 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 1•8 years ago
|
||
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+
Assignee | ||
Comment 2•8 years ago
|
||
It's only bikeshedding if you suggest a color though!
Comment 3•8 years ago
|
||
Snow gray
Comment 4•8 years ago
|
||
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-
Assignee | ||
Comment 5•8 years ago
|
||
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 6•8 years ago
|
||
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+
Assignee | ||
Comment 7•8 years ago
|
||
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)
Comment 8•8 years ago
|
||
(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)
Assignee | ||
Comment 9•8 years ago
|
||
Assignee | ||
Comment 10•8 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/bba47d5c258339a23c921456aec5ba4d07b7f097
Bug 1296484 - Automatically CycleCollect if COMPARTMENT_REVIVED GC ends mostly gray; r=mccr8,r=jonco
Assignee | ||
Comment 11•8 years ago
|
||
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
Assignee | ||
Comment 12•8 years ago
|
||
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.
Comment 13•8 years ago
|
||
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
Comment 14•8 years ago
|
||
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.
Comment 15•8 years ago
|
||
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 ;)
Assignee | ||
Comment 16•8 years ago
|
||
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 17•8 years ago
|
||
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+
Assignee | ||
Comment 18•8 years ago
|
||
Oh, neat! Now it's a one-liner.
Assignee | ||
Comment 19•8 years ago
|
||
Assignee | ||
Comment 20•8 years ago
|
||
Assignee | ||
Comment 21•8 years ago
|
||
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
I had to back this out for asan failures like https://treeherder.mozilla.org/logviewer.html#?job_id=34689692&repo=mozilla-inbound
https://hg.mozilla.org/integration/mozilla-inbound/rev/76813f407a8c
Flags: needinfo?(terrence)
Comment 23•8 years ago
|
||
Terrence, maybe try NS_DispatchToCurrentThread instead of DispatchToMainThread? It looks like that doesn't leak on failure, which can happen late in shut down.
Assignee | ||
Comment 24•8 years ago
|
||
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
Assignee | ||
Comment 25•8 years ago
|
||
(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)
Comment 26•8 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla51
Comment 27•8 years ago
|
||
Terrence said this was not actually needed for bug 1237058, so I'm removing the block.
No longer blocks: 1237058
You need to log in
before you can comment on or make changes to this bug.
Description
•