Closed
Bug 1229970
Opened 9 years ago
Closed 9 years ago
Crash in `anonymous namespace''::ScriptLoaderRunnable::OnStartRequest while dragging tabs to their own window
Categories
(Core :: DOM: Service Workers, defect)
Tracking
()
RESOLVED
FIXED
mozilla45
People
(Reporter: tmay, Assigned: bkelly)
References
Details
(Keywords: crash, Whiteboard: [betabreakers-fx44])
Crash Data
Attachments
(7 files)
237.73 KB,
image/jpeg
|
Details | |
58.76 KB,
text/plain
|
Details | |
648 bytes,
text/plain
|
Details | |
840 bytes,
text/plain
|
Details | |
3.86 KB,
text/plain
|
Details | |
1.08 KB,
patch
|
khuey
:
review+
ritu
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
1.02 KB,
patch
|
Details | Diff | Splinter Review |
Actual Result:
While pulling tabs out into their own window, all tabs crashed.
Expected Result:
The user should be able to pull tabs out without crashing the tabs.
Steps to Recreate:
1. Launch firefox and navigate to alexa top sites.
2. Click on Cambodia
3. Ctrl click all the links and open the link tabs.
4. Start using the webpages as you would regularly use them.
5. Start pulling tabs out and pluggin them back in to the main window.
6. Observe the tabs all crash.
Note:
Difficulty reproducing.
Reporter | ||
Updated•9 years ago
|
Whiteboard: [betabreakers-fx44]
Reporter | ||
Comment 1•9 years ago
|
||
Reporter | ||
Comment 2•9 years ago
|
||
Reporter | ||
Comment 3•9 years ago
|
||
Summary: All Tabs Crashed → All tabs crashed while dragging tabs to their own window
Reporter | ||
Comment 5•9 years ago
|
||
(In reply to Trammel May from comment #5)
> Created attachment 8695911 [details]
> Kal El Crashes.txt
Thanks, next time you can just copy & paste the ID from about:crashes.
Looking at this further it appears to be a low-volume DOM crash:
0 xul.dll `anonymous namespace'::ScriptLoaderRunnable::OnStartRequest(nsIRequest*, nsISupports*) dom/workers/ScriptLoader.cpp
1 xul.dll nsStreamListenerTee::OnStartRequest(nsIRequest*, nsISupports*) netwerk/base/nsStreamListenerTee.cpp
2 xul.dll mozilla::net::HttpChannelChild::DoOnStartRequest(nsIRequest*, nsISupports*) netwerk/protocol/http/HttpChannelChild.cpp
3 xul.dll mozilla::net::HttpChannelChild::OnStartRequest(nsresult const&, mozilla::net::nsHttpResponseHead const&, bool const&, mozilla::net::nsHttpHeaderArray const&, bool const&, bool const&, unsigned int const&, nsCString const&, nsCString const&, mozilla::net::NetAddr const&, mozilla::net::NetAddr const&, unsigned int const&) netwerk/protocol/http/HttpChannelChild.cpp
4 xul.dll mozilla::net::HttpChannelChild::RecvOnStartRequest(nsresult const&, mozilla::net::nsHttpResponseHead const&, bool const&, mozilla::net::nsHttpHeaderArray const&, bool const&, bool const&, unsigned int const&, nsCString const&, nsCString const&, mozilla::net::NetAddr const&, mozilla::net::NetAddr const&, short const&, unsigned int const&) netwerk/protocol/http/HttpChannelChild.cpp
5 @0xab7
6 xul.dll mozilla::dom::PContentChild::OnMessageReceived(IPC::Message const&) obj-firefox/ipc/ipdl/PContentChild.cpp
7 xul.dll mozilla::ipc::MessageChannel::DispatchMessageW(IPC::Message const&) ipc/glue/MessageChannel.cpp
8 xul.dll mozilla::ipc::MessageChannel::OnMaybeDequeueOne() ipc/glue/MessageChannel.cpp
9 xul.dll MessageLoop::DoWork() ipc/chromium/src/base/message_loop.cc
10 ntdll.dll LdrpFreeLoadContext
11 @0xb0417f
More reports: https://crash-stats.mozilla.com/report/list?product=Firefox&signature=%60anonymous+namespace%27%27%3A%3AScriptLoaderRunnable%3A%3AOnStartRequest
Severity: normal → critical
Component: Graphics → DOM
Keywords: crash
Summary: All tabs crashed while dragging tabs to their own window → Crash in `anonymous namespace''::ScriptLoaderRunnable::OnStartRequest while dragging tabs to their own window
Crash Signature: [@ `anonymous namespace''::ScriptLoaderRunnable::OnStartRequest]
Reporter | ||
Comment 7•9 years ago
|
||
(In reply to Anthony Hughes, QA Mentor (:ashughes) from comment #6)
> (In reply to Trammel May from comment #5)
> > Created attachment 8695911 [details]
> > Kal El Crashes.txt
>
> Thanks, next time you can just copy & paste the ID from about:crashes.
>
> Looking at this further it appears to be a low-volume DOM crash:
> 0 xul.dll `anonymous
> namespace'::ScriptLoaderRunnable::OnStartRequest(nsIRequest*, nsISupports*)
> dom/workers/ScriptLoader.cpp
> 1 xul.dll nsStreamListenerTee::OnStartRequest(nsIRequest*, nsISupports*)
> netwerk/base/nsStreamListenerTee.cpp
> 2 xul.dll mozilla::net::HttpChannelChild::DoOnStartRequest(nsIRequest*,
> nsISupports*) netwerk/protocol/http/HttpChannelChild.cpp
> 3 xul.dll mozilla::net::HttpChannelChild::OnStartRequest(nsresult const&,
> mozilla::net::nsHttpResponseHead const&, bool const&,
> mozilla::net::nsHttpHeaderArray const&, bool const&, bool const&, unsigned
> int const&, nsCString const&, nsCString const&, mozilla::net::NetAddr
> const&, mozilla::net::NetAddr const&, unsigned int const&)
> netwerk/protocol/http/HttpChannelChild.cpp
> 4 xul.dll mozilla::net::HttpChannelChild::RecvOnStartRequest(nsresult
> const&, mozilla::net::nsHttpResponseHead const&, bool const&,
> mozilla::net::nsHttpHeaderArray const&, bool const&, bool const&, unsigned
> int const&, nsCString const&, nsCString const&, mozilla::net::NetAddr
> const&, mozilla::net::NetAddr const&, short const&, unsigned int const&)
> netwerk/protocol/http/HttpChannelChild.cpp
> 5 @0xab7
> 6 xul.dll mozilla::dom::PContentChild::OnMessageReceived(IPC::Message
> const&) obj-firefox/ipc/ipdl/PContentChild.cpp
> 7 xul.dll mozilla::ipc::MessageChannel::DispatchMessageW(IPC::Message
> const&) ipc/glue/MessageChannel.cpp
> 8 xul.dll mozilla::ipc::MessageChannel::OnMaybeDequeueOne()
> ipc/glue/MessageChannel.cpp
> 9 xul.dll MessageLoop::DoWork() ipc/chromium/src/base/message_loop.cc
> 10 ntdll.dll LdrpFreeLoadContext
> 11 @0xb0417f
>
> More reports:
> https://crash-stats.mozilla.com/report/
> list?product=Firefox&signature=%60anonymous+namespace%27%27%3A%3AScriptLoader
> Runnable%3A%3AOnStartRequest
ok, will do
Component: DOM → DOM: Workers
Assignee | ||
Comment 8•9 years ago
|
||
ScriptLoaderRunnable::OnStartRequest() only seems to execute if its loading and caching a service worker script. This is currently disabled on beta. This is confusing to me.
(In reply to Ben Kelly [:bkelly] from comment #8)
> ScriptLoaderRunnable::OnStartRequest() only seems to execute if its loading
> and caching a service worker script. This is currently disabled on beta.
> This is confusing to me.
Is it possible for someone to pref this on in Beta?
Assignee | ||
Comment 10•9 years ago
|
||
(In reply to Anthony Hughes, QA Mentor (:ashughes) from comment #9)
> Is it possible for someone to pref this on in Beta?
It is. I guess it depends on how low volume this really is. I would expect exceptionally low volume on beta.
Comment 11•9 years ago
|
||
I would say volume is "exceptionally" low. Here are the numbers to the last week of data:
Firefox 45.0a1 - 17 crashes
Firefox 44.0a2 - 6 crashes
Firefox 42.0b1 - 5 crashes
Firefox 43.0a1 - 1 crash
Firefox 42.0a2 - 1 crash
Assignee | ||
Comment 12•9 years ago
|
||
It appears https://www.khmerload.com is registering a service worker to handle push notifications.
Blocks: ServiceWorkers-postv1
Component: DOM: Workers → DOM: Service Workers
Assignee | ||
Comment 13•9 years ago
|
||
I see both e10s and non-e10s channels in the crashes. So it affects both configurations.
Assignee | ||
Comment 14•9 years ago
|
||
I have a theory here, although I have not been able to reproduce.
Assignee: nobody → bkelly
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Assignee | ||
Comment 15•9 years ago
|
||
Trammel, does this patch fix the issue for you?
If you don't want to do your own build, I think you can get a binary from this try once it finishes:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=5d92ad981028
Attachment #8696709 -
Flags: feedback?(tmay)
Assignee | ||
Comment 16•9 years ago
|
||
New try not based on any other bugs:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a95ed4830e4e
Assignee | ||
Comment 17•9 years ago
|
||
Comment on attachment 8696709 [details] [diff] [review]
Abort script loading start requests if a load has been canceled. r=khuey
This is still a bit speculative, but I think its a safe and correct change.
Attachment #8696709 -
Flags: review?(khuey)
Comment on attachment 8696709 [details] [diff] [review]
Abort script loading start requests if a load has been canceled. r=khuey
Review of attachment 8696709 [details] [diff] [review]:
-----------------------------------------------------------------
Seems reasonable.
Attachment #8696709 -
Flags: review?(khuey) → review+
Comment 19•9 years ago
|
||
Assignee | ||
Comment 20•9 years ago
|
||
We should consider uplifting this to 44 beta if it fixes the problem.
Comment 21•9 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
Assignee | ||
Comment 22•9 years ago
|
||
There have been 3 crashes on 44, but none on 45 since this landed. I think we should uplift it to 44 beta.
Assignee | ||
Comment 23•9 years ago
|
||
Comment on attachment 8696709 [details] [diff] [review]
Abort script loading start requests if a load has been canceled. r=khuey
Approval Request Comment
[Feature/regressing bug #]: Service workers
[User impact if declined]: Low frequency crash, but it may become higher frequency as more sites start using service workers.
[Describe test coverage new/current, TreeHerder]: Mainly observing crashstats after landing this change. Its so low frequency we never reproduced it locally.
[Risks and why]: Minimal. This is a very small change and only affects service workers.
[String/UUID change made/needed]: None.
Attachment #8696709 -
Flags: feedback?(tmay) → approval-mozilla-beta?
Assignee | ||
Comment 24•9 years ago
|
||
Note, I want to land this on 44. I think that will be beta very soon, thats why I requested the beta flag. If we can land it sooner on aurora before the merge to beta, that would be even better.
Comment on attachment 8696709 [details] [diff] [review]
Abort script loading start requests if a load has been canceled. r=khuey
Crash fix, taking it in Beta44.
Attachment #8696709 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
I'm getting conflicts trying to uplift this to beta 44 in ScriptLoader.cpp.
Can we get a rebased patch for this?
Flags: needinfo?(bkelly)
Assignee | ||
Comment 27•9 years ago
|
||
Here is a beta patch. Ritu asked me to post here instead of pushing it.
Flags: needinfo?(bkelly)
Comment 28•9 years ago
|
||
bugherder uplift |
Comment 29•9 years ago
|
||
status-b2g-v2.5:
--- → fixed
You need to log in
before you can comment on or make changes to this bug.
Description
•