Closed Bug 1374239 Opened 7 years ago Closed 7 years ago

Store and rethrow module instantiation/evaluation errors

Categories

(Core :: JavaScript Engine, defect)

55 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox57 --- fixed

People

(Reporter: jonco, Assigned: jonco)

References

Details

Attachments

(1 file)

Update the module implementation to store instantiation and evaluation errors as described below, when this change gets merged into the spec: https://github.com/tc39/ecma262/pull/916 The current system of handling these errors in the module script loader is complicated and brittle and doesn't work in all cases where there are circular dependencies. This approach is much simpler.
Attached patch bug1374239-record-module-errors (deleted) — Splinter Review
This change has now made it into the spec. The patch does the following: - renames module 'state' field to 'status' in line with spec terminology - renames methods DeclarationInstantiation to Instantiate and Evaluation to Evaluate - adds new module statuses - adds new module fields: error, dfsIndex and dfsAncestorIndex - updates module export resolution, error handling, instantiation and evaluation algorithms - update tests that depended on evaluation returning a value now that it returns undefined
Comment on attachment 8894983 [details] [diff] [review] bug1374239-record-module-errors Review of attachment 8894983 [details] [diff] [review]: ----------------------------------------------------------------- Looks good to me! This is a really welcome spec change, to formally specify the state transition of the module graph and to have SCC-atomicity for those transitions. ::: js/src/builtin/Module.js @@ +68,5 @@ > > +function ModuleSetStatus(module, newStatus) > +{ > + assert(newStatus >= MODULE_STATUS_ERRORED && newStatus <= MODULE_STATUS_EVALUATED, > + "Bad new module statusin ModuleSetStatus"); Typo: status in @@ +70,5 @@ > +{ > + assert(newStatus >= MODULE_STATUS_ERRORED && newStatus <= MODULE_STATUS_EVALUATED, > + "Bad new module statusin ModuleSetStatus"); > + if (newStatus !== MODULE_STATUS_ERRORED) > + assert(newStatus > module.status, "New module status inconsistent with current status"); If the ; after assert(...) weren't there, this would've expanded to: if (newStatus !== MODULE_STATUS_ERRORED) UnsafeSetReservedSlot(...) We should define assert and dbg in builtin/Utilities.js to |do { } while (0)| so it's less of a footgun. @@ +80,5 @@ > +// > +// Returns an object describing the location of the resolved export or > +// indicating a failure. There are three failure cases: > +// > +// - The resolution failure can be blamed on a particular module. It would help if the shape of the returned object corresponding to each case is documented here. This first one, IIUC, is { resolved: false, module, ambiguous: false } @@ +82,5 @@ > +// indicating a failure. There are three failure cases: > +// > +// - The resolution failure can be blamed on a particular module. > +// - No culprit can be determined and the resolution failure was due to star > +// export ambiguity. This is { resolved: false, module: null, ambiguous: false } @@ +84,5 @@ > +// - The resolution failure can be blamed on a particular module. > +// - No culprit can be determined and the resolution failure was due to star > +// export ambiguity. > +// - No culprit can be determined and the resolution failure was not due to > +// star export ambiguity. This is { resolved: false, module: null, ambiguous: true } @@ +294,5 @@ > + if (module.status === MODULE_STATUS_INSTANTIATING || > + module.status === MODULE_STATUS_EVALUATING) > + { > + ThrowInternalError(JSMSG_BAD_MODULE_STATUS); > + } This should be an assert. @@ +320,5 @@ > + // This can happen due to OOM when appending to the stack. > + assert(error === "out of memory", > + "Stack must contain module unless we hit OOM"); > + RecordModuleError(module, error); > + } Oh, huh, good to know. @@ +345,5 @@ > +} > +_SetCanonicalName(ModuleInstantiate, "ModuleInstantiate"); > + > +// 15.2.1.16.4.1 InnerModuleDeclarationInstantiation(module, stack, index) > +function InnerModuleDeclarationInstantiation(module, stack, index) This (and InnerEvaluate) are Tarjan's SCC algorithm, right? And that AncestorIndex is just lowlink? Wish the spec just made this explicit for reference. @@ +400,5 @@ > + > + if (requiredModule.status === MODULE_STATUS_INSTANTIATING) { > + UnsafeSetReservedSlot(module, MODULE_OBJECT_DFS_ANCESTOR_INDEX_SLOT, > + std_Math_min(module.dfsAncestorIndex, > + requiredModule.dfsAncestorIndex)); As an aside, the usual formulation of Tarjan's would have this line as dfsAncestorIndex = min(module.dfsAncestorIndex, requiredModule.dfsIndex), but this version also works just fine [1]. [1] https://stackoverflow.com/questions/16250337/about-tarjans-algorithm-for-finding-scc @@ +469,5 @@ > + > + InstantiateModuleFunctionDeclarations(module); > +} > + > +//15.2.1.16.4.3 ResolutionError(module) Nit: space after // @@ +472,5 @@ > + > +//15.2.1.16.4.3 ResolutionError(module) > +function ResolutionError(resolution, kind, name) > +{ > + let module = resolution.module; Could you roughly try to convince me why module is never null here? @@ +513,5 @@ > + module.status !== MODULE_STATUS_INSTANTIATED && > + module.status !== MODULE_STATUS_EVALUATED) > + { > + ThrowInternalError(JSMSG_BAD_MODULE_STATUS); > + } This should be an assert. ::: js/src/builtin/ModuleObject.cpp @@ +699,5 @@ > { > initReservedSlot(ScriptSlot, PrivateValue(script)); > + initReservedSlot(StatusSlot, Int32Value(MODULE_STATUS_ERRORED)); > + initReservedSlot(DFSIndexSlot, Int32Value(0)); > + initReservedSlot(DFSAncestorIndexSlot, Int32Value(0)); Perhaps start these at -1, since 0 is a valid index/lowlink. ::: js/src/builtin/ModuleObject.h @@ +221,2 @@ > SlotCount > }; So many slots! ::: js/src/jit-test/tests/modules/bad-namespace-created.js @@ +1,1 @@ > +// In the original modules spec it was possible a module namespace object to be Nit: I don't think "original" is helpful here, perhaps a time frame?
Attachment #8894983 - Flags: review+
(In reply to Shu-yu Guo [:shu] from comment #2) > We should define assert and dbg in builtin/Utilities.js to |do { } while > (0)| so it's less of a footgun. Yikes. Fixed. > This (and InnerEvaluate) are Tarjan's SCC algorithm, right? And that > AncestorIndex is just lowlink? Wish the spec just made this explicit for > reference. Right. Yeah that would be useful. > > +//15.2.1.16.4.3 ResolutionError(module) > > +function ResolutionError(resolution, kind, name) > > +{ > > + let module = resolution.module; > > Could you roughly try to convince me why module is never null here? This is called in two places. For the case involving imports, module is set prior to calling this function if it's null. For the case involving indirect exports, the resolution object comes from calling ResolveExport and in that method the module property is is always set if resolving an indirect export fails. > This should be an assert. These invalid states can be reached by a buggy module loader (e.g. attempting to evaluate a module before instantiating it) so it's best to check and throw here. Thanks for the review. Other comments addressed.
Pushed by jcoppeard@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/79aa5930dbf1 Store and re-throw module instantiation and evaluation errors r=shu
Backed out for asserting in wpt's html/semantics/scripting-1/the-script-element/module/instantiation-error-2.html on Windows x64 debug: https://hg.mozilla.org/integration/mozilla-inbound/rev/a033245804727a756eba78c0c0a3049bbd448f9e First push which ran failing test: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=b5c7089449a6b3318d5b6ca4733208a6c206cb60&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=running&filter-resultStatus=pending&filter-resultStatus=runnable Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=122098805&repo=mozilla-inbound 1:08:01 INFO - PID 3876 | Assertion failure: !aRequest->mModuleScript->InstantiationFailed(), at z:/build/build/src/dom/script/ScriptLoader.cpp:649 21:08:01 INFO - PID 3876 | #01: mozilla_dump_image[Z:\task_1502310298\build\application\firefox\xul.dll +0x36d1283] 21:08:01 INFO - PID 3876 | #02: ???[Z:\task_1502310298\build\application\firefox\xul.dll +0x118d384] 21:08:01 INFO - PID 3876 | #03: ???[Z:\task_1502310298\build\application\firefox\xul.dll +0x11bc698] 21:08:01 INFO - PID 3876 | #04: ???[Z:\task_1502310298\build\application\firefox\xul.dll +0xdc03ae] 21:08:01 INFO - PID 3876 | #05: ???[Z:\task_1502310298\build\application\firefox\xul.dll +0xdbf187] 21:08:01 INFO - PID 3876 | #06: soundtouch::SoundTouch::operator=[Z:\task_1502310298\build\application\firefox\xul.dll +0x12f7647] 21:08:01 INFO - PID 3876 | #07: soundtouch::SoundTouch::operator=[Z:\task_1502310298\build\application\firefox\xul.dll +0x12f78be] 21:08:01 INFO - PID 3876 | #08: ???[Z:\task_1502310298\build\application\firefox\xul.dll +0x12c1262] 21:08:01 INFO - PID 3876 | #09: ???[Z:\task_1502310298\build\application\firefox\xul.dll +0x12c0ee2] 21:08:01 INFO - PID 3876 | #10: mozilla_dump_image[Z:\task_1502310298\build\application\firefox\xul.dll +0x37717e3] 21:08:01 INFO - PID 3876 | #11: mozilla_dump_image[Z:\task_1502310298\build\application\firefox\xul.dll +0x37e42cc] 21:08:01 INFO - PID 3876 | #12: workerlz4_maxCompressedSize[Z:\task_1502310298\build\application\firefox\xul.dll +0x4f89099] 21:08:01 INFO - PID 3876 | #13: soundtouch::SoundTouch::operator=[Z:\task_1502310298\build\application\firefox\xul.dll +0x12f781b] 21:08:01 INFO - PID 3876 | #14: ???[Z:\task_1502310298\build\application\firefox\xul.dll +0x12c1262] 21:08:01 INFO - PID 3876 | #15: ???[Z:\task_1502310298\build\application\firefox\xul.dll +0x12c0ee2] 21:08:01 INFO - PID 3876 | #16: workerlz4_maxCompressedSize[Z:\task_1502310298\build\application\firefox\xul.dll +0x4f88903] 21:08:01 INFO - PID 3876 | #17: ???[Z:\task_1502310298\build\application\firefox\firefox.exe +0x17af] 21:08:01 INFO - PID 3876 | #18: ???[Z:\task_1502310298\build\application\firefox\firefox.exe +0x13d2] 21:08:01 INFO - PID 3876 | #19: ???[Z:\task_1502310298\build\application\firefox\firefox.exe +0x1d9b] 21:08:01 INFO - PID 3876 | #20: TargetNtUnmapViewOfSection[Z:\task_1502310298\build\application\firefox\firefox.exe +0x47185] 21:08:01 INFO - PID 3876 | #21: BaseThreadInitThunk[C:\Windows\System32\KERNEL32.DLL +0x12774] 21:08:01 INFO - PID 3876 | #22: RtlUserThreadStart[C:\Windows\SYSTEM32\ntdll.dll +0x70d61] 21:08:21 INFO - PROCESS-CRASH | /html/semantics/scripting-1/the-script-element/module/instantiation-error-2.html | application crashed [@ mozilla::dom::ScriptLoader::StartFetchingModuleDependencies(mozilla::dom::ModuleLoadRequest *)] 21:08:21 INFO - Crash dump filename: c:\users\genericworker\appdata\local\temp\tmp7gz8v9.mozrunner\minidumps\68d7736f-9377-40a7-bbb4-86d1a24452dd.dmp 21:08:21 INFO - Operating system: Windows NT 21:08:21 INFO - 10.0.15063 21:08:21 INFO - CPU: amd64 21:08:21 INFO - family 6 model 63 stepping 2 21:08:21 INFO - 8 CPUs 21:08:21 INFO - 21:08:21 INFO - GPU: UNKNOWN 21:08:21 INFO - 21:08:21 INFO - Crash reason: EXCEPTION_BREAKPOINT 21:08:21 INFO - Crash address: 0x7ffeac4009f4 21:08:21 INFO - Assertion: Unknown assertion type 0x00000000 21:08:21 INFO - Process uptime: 4 seconds 21:08:21 INFO - 21:08:21 INFO - Thread 0 (crashed) 21:08:21 INFO - 0 xul.dll!mozilla::dom::ScriptLoader::StartFetchingModuleDependencies(mozilla::dom::ModuleLoadRequest *) [ScriptLoader.cpp:b5c7089449a6 : 649 + 0x3f] 21:08:21 INFO - rax = 0x0000000000000000 rdx = 0x00000099645feb88 21:08:21 INFO - rcx = 0x00000000ffffffff rbx = 0x0000000000000289 21:08:21 INFO - rsi = 0x00000297bc970be0 rdi = 0x00000297c54adc40 21:08:21 INFO - rbp = 0x00000099645febf0 rsp = 0x00000099645feb70 21:08:21 INFO - r8 = 0x00000099645feb80 r9 = 0x00000099645feb78 21:08:21 INFO - r10 = 0x0000000000000000 r11 = 0x00000099645fa0d0 21:08:21 INFO - r12 = 0x0000000000000000 r13 = 0x00000297bc99d800 21:08:21 INFO - r14 = 0x0000000000000000 r15 = 0x00000099645ff600 21:08:21 INFO - rip = 0x00007ffeac4009f4 21:08:21 INFO - Found by: given as instruction pointer in context 21:08:21 INFO - 1 xul.dll!mozilla::MozPromise<bool,nsresult,0>::ThenValue<mozilla::dom::ModuleLoadRequest *,void ( mozilla::dom::ModuleLoadRequest::*)(void),void ( mozilla::dom::ModuleLoadRequest::*)(void)>::DoResolveOrRejectInternal(mozilla::MozPromise<bool,nsresult,0>::ResolveOrRejectValue &) [MozPromise.h:b5c7089449a6 : 630 + 0x2e] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645fec10 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffeac3f1283 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 2 xul.dll!mozilla::MozPromise<bool,nsresult,0>::ThenValueBase::DoResolveOrReject(mozilla::MozPromise<bool,nsresult,0>::ResolveOrRejectValue &) [MozPromise.h:b5c7089449a6 : 496 + 0xc] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645fec40 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffea9ead384 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 3 xul.dll!mozilla::MozPromise<bool,nsresult,0>::ThenValueBase::ResolveOrRejectRunnable::Run() [MozPromise.h:b5c7089449a6 : 401 + 0x21] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645fec70 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffea9edc698 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 4 xul.dll!nsThread::ProcessNextEvent(bool,bool *) [nsThread.cpp:b5c7089449a6 : 1446 + 0x14] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645feca0 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffea9ae03ae 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 5 xul.dll!NS_ProcessNextEvent(nsIThread *,bool) [nsThreadUtils.cpp:b5c7089449a6 : 480 + 0xd] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff300 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffea9adf187 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 6 xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate *) [MessagePump.cpp:b5c7089449a6 : 97 + 0xa] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff340 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffeaa017647 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 7 xul.dll!mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate *) [MessagePump.cpp:b5c7089449a6 : 302 + 0xb] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff3a0 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffeaa0178be 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 8 xul.dll!MessageLoop::RunHandler() [message_loop.cc:b5c7089449a6 : 319 + 0x5] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff3e0 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffea9fe1262 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 9 xul.dll!MessageLoop::Run() [message_loop.cc:b5c7089449a6 : 299 + 0x8] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff410 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffea9fe0ee2 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 10 xul.dll!nsBaseAppShell::Run() [nsBaseAppShell.cpp:b5c7089449a6 : 156 + 0xd] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff460 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffeac4917e3 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 11 xul.dll!nsAppShell::Run() [nsAppShell.cpp:b5c7089449a6 : 210 + 0x8] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff4a0 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffeac5042cc 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 12 xul.dll!XRE_RunAppShell() [nsEmbedFunctions.cpp:b5c7089449a6 : 882 + 0x6] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff4e0 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffeadca9099 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 13 xul.dll!mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate *) [MessagePump.cpp:b5c7089449a6 : 270 + 0x5] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff520 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffeaa01781b 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 14 xul.dll!MessageLoop::RunHandler() [message_loop.cc:b5c7089449a6 : 319 + 0x5] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff560 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffea9fe1262 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 15 xul.dll!MessageLoop::Run() [message_loop.cc:b5c7089449a6 : 299 + 0x8] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff590 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffea9fe0ee2 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 16 xul.dll!XRE_InitChildProcess(int,char * * const,XREChildData const *) [nsEmbedFunctions.cpp:b5c7089449a6 : 699 + 0x9] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff5e0 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffeadca8903 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 17 firefox.exe!content_process_main(mozilla::Bootstrap *,int,char * * const) [plugin-container.cpp:b5c7089449a6 : 64 + 0x13] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff810 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ff6895f17af 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 18 firefox.exe!NS_internal_main(int,char * *,char * *) [nsBrowserApp.cpp:b5c7089449a6 : 285 + 0x11] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff850 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ff6895f13d2 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 19 firefox.exe!wmain [nsWindowsWMain.cpp:b5c7089449a6 : 115 + 0x14] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff8c0 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ff6895f1d9b 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 20 firefox.exe!__scrt_common_main_seh [exe_common.inl : 253 + 0x22] 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff920 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ff689637185 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 21 kernel32.dll!BaseThreadInitThunk + 0x14 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff960 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffee4062774 21:08:21 INFO - Found by: call frame info 21:08:21 INFO - 22 ntdll.dll!SdbpCheckMatchingRegistryEntry + 0x29d 21:08:21 INFO - rbx = 0x0000000000000289 rbp = 0x00000099645febf0 21:08:21 INFO - rsp = 0x00000099645ff990 r12 = 0x0000000000000000 21:08:21 INFO - r13 = 0x00000297bc99d800 r14 = 0x0000000000000000 21:08:21 INFO - r15 = 0x00000099645ff600 rip = 0x00007ffee4650d61 21:08:21 INFO - Found by: call frame info
Flags: needinfo?(jcoppeard)
Pushed by jcoppeard@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/2e4748827cda Store and re-throw module instantiation and evaluation errors r=shu
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
Flags: needinfo?(jcoppeard)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: