Status: Available
Owner: ----
CC:
modul...@chromium.org Components: Blink>HTML>Script
New issue 750024 by
ne...@chromium.org: Blink calls Evaluate on module with errored dependencies
https://bugs.chromium.org/p/chromium/issues/detail?id=750024When running the wpt tests in an infinite loop, every now and then
evaluation-error-3.html fails: (The OUT lines are debugging output
that I added. Status 3 is Instantiated, 4 is Evaluating.)
IN: '
http://web-platform.test:8001/html/semantics/scripting-1/the-script-element/module/evaluation-error-3.html\nOUT: INSTANTIATE throw-nested.js
OUT: Changing status from 0 to 1 on throw-nested.js
OUT: Changing status from 0 to 1 on throw.js
OUT: Changing status from 1 to 2 on throw-nested.js
OUT: Changing status from 1 to 2 on throw.js
OUT: Changing status from 2 to 3 on throw.js
OUT: Changing status from 2 to 3 on throw-nested.js
OUT: EVALUATE throw.js
OUT: Changing status from 3 to 4 on throw.js
OUT: Changing status from 4 to errored on throw.js
ERR: CONSOLE ERROR: line 2: Uncaught [object Object]
OUT: EVALUATE throw-nested.js
OUT: Changing status from 3 to 4 on throw-nested.js
ERR:
ERR: # Fatal error in ../../v8/src/objects.cc, line 20081\n
ERR: # Debug check failed: module->status() != kErrored (6 vs. 6).\n
ERR: #\n
ERR: CONSOLE ERROR: line 1: Uncaught [object Object]\n
What seems to happen is:
- Non-deterministically, blink chooses to instantiate throw-nested.js
(instead of throw.js).
- This results in both throw.js and throw-nested.js becoming Instantiated.
- Then blink decides to evaluate throw.js. This is a bit strange to me but
okay, throw.js got Instantiated so evaluating it now is okay.
- This results in throw.js becoming Errored.
- Now blink evaluates throw-nested.js. V8 is not prepared for that because
at this point throw-nested.js has errored dependencies (namely throw.js).
Stacktrace:
ERR: #0 0x7f8951660e87
ERR: base::debug::StackTrace::StackTrace()\n
ERR: #1 0x7f894f6ac5c5 gin::(anonymous namespace)::PrintStackTrace()\n
ERR: #2 0x7f8945f90c9d V8_Fatal()\n
ERR: #3 0x7f894f1213d1
ERR: v8::internal::Module::Evaluate()\n
ERR: #4 0x7f894f120e4e
ERR: v8::internal::Module::Evaluate()\n
ERR: #5 0x7f894f12082f
ERR: v8::internal::Module::Evaluate()\n
ERR: #6 0x7f894eb6fbd1
ERR: v8::Module::Evaluate()\n
ERR: #7 0x7f894d41b2c5
ERR: blink::V8ScriptRunner::EvaluateModule()\n
ERR: #8 0x7f894d3f6389
ERR: blink::ScriptModule::Evaluate()\n
ERR: #9 0x7f894d79be6a
ERR: blink::ModulatorImpl::ExecuteModule()\n
ERR: #10 0x7f894d7a38df
ERR: blink::ModuleScript::RunScript()\n
ERR: #11 0x7f894d7e4e15
ERR: blink::ScriptLoader::DoExecuteScript()\n
ERR: #12 0x7f894d7e4aa2
ERR: blink::ScriptLoader::ExecuteScriptBlock()\n
ERR: #13 0x7f894dc08b3b
ERR: blink::(anonymous namespace)::DoExecuteScript()\n
ERR: #14 0x7f894dc089e0
ERR: blink::HTMLParserScriptRunner::ExecutePendingScriptAndDispatchEvent()\n
ERR: #15 0x7f894dc0a915
ERR: blink::HTMLParserScriptRunner::ExecuteScriptsWaitingForParsing()\n
ERR: #16 0x7f894dbeffa4
ERR: blink::HTMLDocumentParser::AttemptToRunDeferredScriptsAndEnd()\n
ERR: #17 0x7f894dbf784d
ERR: blink::HTMLDocumentParser::NotifyScriptLoaded()\n
ERR: #18 0x7f894dc09320
ERR: blink::HTMLParserScriptRunner::PendingScriptFinished()\n
ERR: #19 0x7f894d7a1f57
ERR: blink::ModulePendingScriptTreeClient::NotifyModuleTreeLoadFinished()\n
ERR: #20 0x7f894dfa38a6
ERR: blink::ModuleTreeLinker::AdvanceState()\n
ERR: #21 0x7f894dfa4852
ERR: blink::ModuleTreeLinker::NotifyModuleLoadFinished()\n
ERR: #22 0x7f89516616cb
ERR: base::debug::TaskAnnotator::RunTask()\n
ERR: #23 0x7f894c91e615
ERR: blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue()\n
I could change V8 such that it can deal with the situation but I'm wondering if there's perhaps a deeper problem here.
--
You received this message because:
1. You were specifically CC'd on the issue
You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settingsReply to this email to add a comment.