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.
Blocks: modules-0
Blocks: 1361988
Blocks: 1365187
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
Depends on: 1388110
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
https://hg.mozilla.org/mozilla-central/rev/2e4748827cda
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: