Closed Bug 1440827 Opened 6 years ago Closed 6 years ago

Assertion failure: aRequest->IsCanceled(), at src/dom/script/ScriptLoader.cpp:3016

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla61
Tracking Status
firefox-esr52 --- unaffected
firefox59 --- wontfix
firefox60 --- fixed
firefox61 --- fixed

People

(Reporter: tsmith, Assigned: jonco)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file testcase.html
BuildID=20180223194828
SourceStamp=ad3c6f89d67752309a473e57a47fb88f9da37683

Assertion failure: aRequest->IsCanceled(), at src/dom/script/ScriptLoader.cpp:3016

#0 mozilla::dom::ScriptLoader::HandleLoadError(mozilla::dom::ScriptLoadRequest*, nsresult) /src/dom/script/ScriptLoader.cpp:3012:5
#1 mozilla::dom::ScriptLoader::OnStreamComplete(nsIIncrementalStreamLoader*, mozilla::dom::ScriptLoadRequest*, nsresult, nsresult, mozilla::dom::SRICheckDataVerifier*) /src/dom/script/ScriptLoader.cpp:2796:7
#2 mozilla::dom::ScriptLoadHandler::OnStreamComplete(nsIIncrementalStreamLoader*, nsISupports*, nsresult, unsigned int, unsigned char const*) /src/dom/script/ScriptLoadHandler.cpp:385:23
#3 nsIncrementalStreamLoader::OnStopRequest(nsIRequest*, nsISupports*, nsresult) /src/netwerk/base/nsIncrementalStreamLoader.cpp:102:30
#4 mozilla::net::HttpChannelChild::DoOnStopRequest(nsIRequest*, nsresult, nsISupports*) /src/netwerk/protocol/http/HttpChannelChild.cpp:1286:16
#5 mozilla::net::HttpChannelChild::OnStopRequest(nsresult const&, mozilla::net::ResourceTimingStruct const&, mozilla::net::nsHttpHeaderArray const&) /src/netwerk/protocol/http/HttpChannelChild.cpp:1164:5
#6 mozilla::net::ChannelEventQueue::FlushQueue() /src/netwerk/ipc/ChannelEventQueue.cpp:93:12
#7 mozilla::net::ChannelEventQueue::MaybeFlushQueue() /src/obj-firefox/dist/include/mozilla/net/ChannelEventQueue.h:329:5
#8 mozilla::net::ChannelEventQueue::CompleteResume() /src/obj-firefox/dist/include/mozilla/net/ChannelEventQueue.h:306:5
#9 mozilla::net::ChannelEventQueue::ResumeInternal()::CompleteResumeRunnable::Run() /src/netwerk/ipc/ChannelEventQueue.cpp:161:17
#10 mozilla::SchedulerGroup::Runnable::Run() /src/xpcom/threads/SchedulerGroup.cpp:413:25
#11 nsThread::ProcessNextEvent(bool, bool*) /src/xpcom/threads/nsThread.cpp:1040:14
#12 NS_ProcessNextEvent(nsIThread*, bool) /src/xpcom/threads/nsThreadUtils.cpp:517:10
#13 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /src/ipc/glue/MessagePump.cpp:97:21
#14 MessageLoop::RunInternal() /src/ipc/chromium/src/base/message_loop.cc:326:10
#15 MessageLoop::Run() /src/ipc/chromium/src/base/message_loop.cc:299:3
#16 nsBaseAppShell::Run() /src/widget/nsBaseAppShell.cpp:157:27
#17 XRE_RunAppShell() /src/toolkit/xre/nsEmbedFunctions.cpp:892:22
#18 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /src/ipc/glue/MessagePump.cpp:269:9
#19 MessageLoop::RunInternal() /src/ipc/chromium/src/base/message_loop.cc:326:10
#20 MessageLoop::Run() /src/ipc/chromium/src/base/message_loop.cc:299:3
#21 XRE_InitChildProcess(int, char**, XREChildData const*) /src/toolkit/xre/nsEmbedFunctions.cpp:718:34
#22 content_process_main(mozilla::Bootstrap*, int, char**) /src/browser/app/../../ipc/contentproc/plugin-container.cpp:63:30
#23 main /src/browser/app/nsBrowserApp.cpp:280:18
#24 __libc_start_main /build/glibc-Cl5G7W/glibc-2.23/csu/../csu/libc-start.c:291
#25 _start (firefox+0x423444)
Flags: in-testsuite?
Jon, it seems this is your code.
Flags: needinfo?(jcoppeard)
Investigating.
Assignee: nobody → jcoppeard
Flags: needinfo?(jcoppeard)
We just need to cancel a preloaded request if we decide not to use it.  The other path this happens on in ScriptLoader::ProcessExternalScript already does this.
Attachment #8963528 - Flags: review?(amarchesini)
Attachment #8963528 - Flags: review?(amarchesini) → review+
Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/c781314211da
Cancel preloaded requests if we decide not to use them r=baku
https://hg.mozilla.org/mozilla-central/rev/c781314211da
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
Is there a user impact here which justified backport to 60?
Flags: needinfo?(jcoppeard)
Flags: in-testsuite?
Flags: in-testsuite+
Comment on attachment 8963528 [details] [diff] [review]
bug1440827-load-error-assertion

Approval Request Comment
[Feature/Bug causing the regression]: This is a latent issue that showed up because of changes in bug 1342416.
[User impact if declined]: I don't think there's much impact here - in rare cases we will continue to load preloaded scripts after we decide we don't need them.
[Is this code covered by automated tests?]: Yes.
[Has the fix been verified in Nightly?]: Yes.
[Needs manual test from QE? If yes, steps to reproduce]: No.
[List of other uplifts needed for the feature/fix]:
[Is the change risky?]: No
[Why is the change risky/not risky?]: This is a very minor change to cancel unneeded preload requests, which we already do in other cases.
[String changes made/needed]: None.
Flags: needinfo?(jcoppeard)
Attachment #8963528 - Flags: approval-mozilla-beta?
Comment on attachment 8963528 [details] [diff] [review]
bug1440827-load-error-assertion

dom fix, approved for 60.0b14
Attachment #8963528 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: