Closed
Bug 1681759
Opened 3 years ago
Closed 3 years ago
Crash in [@ mozilla::net::LoadInfo::SetController]
Categories
(Core :: DOM: Service Workers, defect)
Tracking
()
RESOLVED
FIXED
91 Branch
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox88 | --- | wontfix |
firefox89 | --- | wontfix |
firefox90 | --- | wontfix |
firefox91 | --- | fixed |
People
(Reporter: sefeng, Assigned: edenchuang)
Details
(Keywords: crash)
Crash Data
Attachments
(1 file)
Crash report: https://crash-stats.mozilla.org/report/index/48748394-1f0e-4207-9259-d7cda0201208
MOZ_CRASH Reason: MOZ_DIAGNOSTIC_ASSERT(!isSome())
Top 10 frames of crashing thread:
0 xul.dll mozilla::net::LoadInfo::SetController netwerk/base/LoadInfo.cpp:1725
1 xul.dll mozilla::dom::ServiceWorkerInterceptController::ShouldPrepareForIntercept dom/serviceworkers/ServiceWorkerInterceptController.cpp:76
2 xul.dll mozilla::net::HttpBaseChannel::ShouldIntercept netwerk/protocol/http/HttpBaseChannel.cpp:3486
3 xul.dll mozilla::net::nsHttpChannel::Connect netwerk/protocol/http/nsHttpChannel.cpp:784
4 xul.dll mozilla::net::nsHttpChannel::ContinueOnBeforeConnect netwerk/protocol/http/nsHttpChannel.cpp:751
5 xul.dll mozilla::net::nsHttpChannel::OnBeforeConnect netwerk/protocol/http/nsHttpChannel.cpp:653
6 xul.dll mozilla::net::nsHttpChannel::HandleOnBeforeConnect netwerk/protocol/http/nsHttpChannel.cpp:546
7 xul.dll std::_Func_impl_no_alloc<`lambda at /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:499:21', nsresult, mozilla::net::nsHttpChannel*>::_Do_call
8 xul.dll mozilla::net::nsHttpChannel::CallOrWaitForResume netwerk/protocol/http/nsHttpChannel.cpp:9353
9 xul.dll mozilla::detail::RunnableFunction<`lambda at /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:6228:11'>::Run xpcom/threads/nsThreadUtils.h:534
Looks like there's an edge case that mController
is not initialized, so the diagnostic assert fails.
Updated•3 years ago
|
Component: DOM: Core & HTML → DOM: Service Workers
Comment 2•3 years ago
|
||
:valentin experienced this locally, identifying that this can be made to happen reliably with the evernote ServiceWorker, and what appears to be happening is that (with some hand-waving that I'll correct in a future comment):
- Precondition: There's a (?no-fetch?) ServiceWorker and the navigation ends up getting marked as controlled.
- The (network) request ends up getting redirected to a (same-origin) scope that matches a no-fetch ServiceWorker
- We end up trying to set the controller when a controller already exists, and the Maybe diagnostic-asserts because it rightly expects you won't do this (because it will cause a leak and violates invariants).
Assignee | ||
Updated•3 years ago
|
Assignee: nobody → echuang
Assignee | ||
Comment 3•3 years ago
|
||
Updated•3 years ago
|
Attachment #9223315 -
Attachment description: WIP: Bug 1681759 - Before setting a no-fetch controller to loadInfo, clear the previous controller if the redirect mode is REDIRECT_MODE_FOLLOW. → Bug 1681759 - Clear the previous controller if the redirect mode is REDIRECT_MODE_FOLLOW before setting for a no-fetch handler controller.
Pushed by echuang@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3e392a602a87 Clear the previous controller if the redirect mode is REDIRECT_MODE_FOLLOW before setting for a no-fetch handler controller. r=dom-worker-reviewers,asuth
Comment 5•3 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 3 years ago
status-firefox91:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → 91 Branch
Updated•3 years ago
|
status-firefox88:
--- → wontfix
status-firefox89:
--- → wontfix
status-firefox90:
--- → wontfix
status-firefox-esr78:
--- → unaffected
Updated•1 year ago
|
Flags: needinfo?(bugmail)
You need to log in
before you can comment on or make changes to this bug.
Description
•