New issue
Advanced search Search tips

Issue 748544 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug

Blocking:
issue 594639



Sign in to add a comment

ModuleTreeLinker.cpp(208) Check failed: ScriptModuleState::kUninstantiated == result->RecordStatus() (0 vs. 1)

Project Member Reported by neis@chromium.org, Jul 25 2017

Issue description

Compile current chromium (b856d1a5c9e4426f51500eebe7dd9c2ad1699fc8) and run the
attached html file as webkit test, e.g.

$ third_party/WebKit/Tools/Scripts/run-webkit-tests third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html --nocheck-sys-deps --no-retry-failures

Sometimes the test passes, but sometimes it crashes as follows:

[1:1:0725/162346.561820:3725289843104:FATAL:ModuleTreeLinker.cpp(208)] Check failed: ScriptModuleState::kUninstantiated == result->RecordStatus() (0 vs. 1)
#0 0x7fa0b9e6fe87 base::debug::StackTrace::StackTrace()
#1 0x7fa0b9e96ec1 logging::LogMessage::~LogMessage()
#2 0x7fa0b67b38d4 blink::ModuleTreeLinker::NotifyModuleLoadFinished()
#3 0x7fa0b9e706cb base::debug::TaskAnnotator::RunTask()
#4 0x7fa0b512d615 blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue()
#5 0x7fa0b512b124 blink::scheduler::TaskQueueManager::DoWork()
#6 0x7fa0b512f81e _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN5blink9scheduler16TaskQueueManagerEFvbERKNS_7WeakPtrIS6_EEJRKbEEEvOT_OT0_DpOT1_
#7 0x7fa0b9e706cb base::debug::TaskAnnotator::RunTask()
#8 0x7fa0b9ea3a6a base::MessageLoop::RunTask()
#9 0x7fa0b9ea3da2 base::MessageLoop::DeferOrRunPendingTask()
#10 0x7fa0b9ea4104 base::MessageLoop::DoWork()
#11 0x7fa0b9ea59d0 base::MessagePumpDefault::Run()
#12 0x7fa0b9ea362f base::MessageLoop::Run()
#13 0x7fa0b9ed7cc7 base::RunLoop::Run()
#14 0x7fa0bb13e3dd content::RendererMain()
#15 0x7fa0bb2ab29a content::RunZygote()
#16 0x7fa0bb2abb7b content::RunNamedProcessTypeMain()
#17 0x7fa0bb2ac4b8 content::ContentMainRunnerImpl::Run()
#18 0x7fa0b8045fe6 service_manager::Main()
#19 0x7fa0bb2aaf62 content::ContentMain()
#20 0x000000478b4f main
#21 0x7fa0b34b0f45 __libc_start_main
#22 0x000000478a39 <unknown>


For better understanding:

After the first script load fails (cycle-error-a.js), three modules are
(according to ES) supposed to have status "errored" (a, b, c), whereas
two are still uninstantiated (d, e).

The second script load (cycle-error-d.js) is supposed to fail immediately
with the error recorded in a (as specified in HTML) -- without trying to
instantiate d.
 
cycle-error-a.js
56 bytes View Download
cycle-error-b.js
85 bytes View Download
cycle-error-c.js
73 bytes View Download
cycle-error-d.js
85 bytes View Download
cycle-error-e.js
73 bytes View Download
instantiation-error-4.html
963 bytes View Download

Comment 1 by neis@chromium.org, Jul 25 2017

Cc: -domenic@chromium.org module-dev@chromium.org

Comment 2 by neis@chromium.org, Jul 25 2017

I'm looking into the V8 side of this, I think there's a bug there.

Comment 3 by kouhei@chromium.org, Jul 25 2017

There is a large chance that this was introduced in https://chromium-review.googlesource.com/c/578531/

Comment 4 by kouhei@chromium.org, Jul 25 2017

Note to self:

The graph is
html references a then e.
a imports b.
b imports c, d.
c imports c.
d imports a, e.
e imports e w/ error.

Comment 5 by neis@chromium.org, Jul 26 2017

This should fix the issue:
https://chromium-review.googlesource.com/c/586602/

Comment 6 by neis@chromium.org, Jul 26 2017

Owner: neis@chromium.org
Status: Assigned (was: Available)

Comment 7 by neis@chromium.org, Jul 26 2017

Labels: -Restrict-View-Google
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e017463189d1e7346fa24210808e30c53115fd6d

commit e017463189d1e7346fa24210808e30c53115fd6d
Author: Georg Neis <neis@chromium.org>
Date: Wed Jul 26 17:55:25 2017

[modules] Fix mapping of internal status to external status.

Internally, the module status type has one additional value, namely
PreInstantiating. I previously mapped this to Instantiating when
crossing the API boundary but it really should be mapped to
Uninstantiated. That's because when instantiation fails, typically all
modules not yet visited will remain in the PreInstantiating state, yet
they must appear Uninstantiated to the outside.

A relevant test will be added to chromium shortly.

Bug:  v8:1569 ,  chromium:748544 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: Icb33c7f90db5e62375b6c09d14e3d2d5342b0879
Reviewed-on: https://chromium-review.googlesource.com/586602
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46911}
[modify] https://crrev.com/e017463189d1e7346fa24210808e30c53115fd6d/src/api.cc

Comment 9 by neis@chromium.org, Jul 27 2017

Labels: Merge-Request-61
Status: Fixed (was: Assigned)
Please add appropriate OSs.

Comment 11 by neis@chromium.org, Jul 27 2017

Labels: OS-All
Project Member

Comment 12 by sheriffbot@chromium.org, Jul 28 2017

Labels: -Merge-Request-61 Hotlist-Merge-Approved Merge-Approved-61
Your change meets the bar and is auto-approved for M61. Please go ahead and merge the CL to branch 3163 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), ketakid @(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 13 by bugdroid1@chromium.org, Jul 28 2017

Labels: merge-merged-6.1
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/f9f392bcbe2ffe2352aff5b939d64f09740f1ff1

commit f9f392bcbe2ffe2352aff5b939d64f09740f1ff1
Author: Georg Neis <neis@chromium.org>
Date: Fri Jul 28 10:32:27 2017

Merged: [modules] Fix mapping of internal status to external status.

Revision: e017463189d1e7346fa24210808e30c53115fd6d

BUG= chromium:748544 , v8:1569 
LOG=N
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true
R=hablich@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I51eb27fdceecbaf976c9b8a7c3e369aea6676b30
Reviewed-on: https://chromium-review.googlesource.com/591108
Reviewed-by: Michael Hablich <hablich@chromium.org>
Cr-Commit-Position: refs/branch-heads/6.1@{#24}
Cr-Branched-From: 1bf2e10ddb194d4c2871a87a4732613419de892d-refs/heads/6.1.534@{#1}
Cr-Branched-From: e825c4318eb2065ffdf9044aa6a5278635c36427-refs/heads/master@{#46746}
[modify] https://crrev.com/f9f392bcbe2ffe2352aff5b939d64f09740f1ff1/src/api.cc

Comment 14 by neis@chromium.org, Jul 28 2017

Labels: -Hotlist-Merge-Approved -Merge-Approved-61
Project Member

Comment 15 by bugdroid1@chromium.org, Aug 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/92d17e224880ee353e6e95d1412572a580fea5b0

commit 92d17e224880ee353e6e95d1412572a580fea5b0
Author: Georg Neis <neis@chromium.org>
Date: Fri Aug 04 08:55:33 2017

Add more tests of module instantiation errors.

Bug:  chromium:748544 
Change-Id: I9458ea9c25d65bc31ff34dc8101936468ed2bf81
Reviewed-on: https://chromium-review.googlesource.com/589434
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491969}
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4a.js
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4b.js
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4c.js
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4d.js
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5a.js
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5b.js
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5c.js
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5d.js
[add] https://crrev.com/92d17e224880ee353e6e95d1412572a580fea5b0/third_party/WebKit/LayoutTests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5e.js

Sign in to add a comment