Closed Bug 1440827 Opened 7 years ago Closed 7 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
Status: NEW → RESOLVED
Closed: 7 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: