Closed Bug 2048294 Opened 25 days ago Closed 20 days ago

Crash in [@ mozilla::net::nsHttpConnection::Activate]

Categories

(Core :: Networking: HTTP, defect, P2)

Unspecified
Windows 10
defect

Tracking

()

RESOLVED FIXED
154 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr140 --- unaffected
firefox152 --- unaffected
firefox153 --- disabled
firefox154 --- fixed

People

(Reporter: diannaS, Assigned: kershaw)

References

(Blocks 1 open bug)

Details

(Keywords: crash, Whiteboard: [necko-triaged])

Crash Data

Attachments

(1 file)

Crash report: https://crash-stats.mozilla.org/report/index/95e0e55a-6d11-46b6-9913-33ef70260616

Reason:

EXCEPTION_ACCESS_VIOLATION_READ

Top 10 frames:

0  xul.dll  mozilla::net::nsHttpConnection::Activate(mozilla::net::nsAHttpTransaction*, u...  netwerk/protocol/http/nsHttpConnection.cpp:652
1  xul.dll  mozilla::net::nsHttpConnectionMgr::DispatchAbstractTransaction(mozilla::net::...  netwerk/protocol/http/nsHttpConnectionMgr.cpp:1882
2  xul.dll  mozilla::net::nsHttpConnectionMgr::DispatchTransaction(mozilla::net::Connecti...  netwerk/protocol/http/nsHttpConnectionMgr.cpp:1849
3  xul.dll  mozilla::net::nsHttpConnectionMgr::ProcessNewTransaction(mozilla::net::nsHttp...  netwerk/protocol/http/nsHttpConnectionMgr.cpp:1966
4  xul.dll  mozilla::net::nsHttpConnectionMgr::OnMsgNewTransaction(int, mozilla::net::ARe...  netwerk/protocol/http/nsHttpConnectionMgr.cpp:2321
5  xul.dll  RefPtr<mozilla::net::nsHttpConnectionMgr>::Proxy<void, int, mozilla::net::ARe...  mfbt/RefPtr.h:357
5  xul.dll  mozilla::net::ConnEvent::Run()  netwerk/protocol/http/nsHttpConnectionMgr.cpp:180
6  xul.dll  nsThread::ProcessNextEvent(bool, bool*)  xpcom/threads/nsThread.cpp:1173
6  xul.dll  NS_ProcessNextEvent(nsIThread*, bool)  xpcom/threads/nsThreadUtils.cpp:472
7  xul.dll  mozilla::net::nsSocketTransportService::Run()  netwerk/base/nsSocketTransportService2.cpp:1254
Flags: needinfo?(kershaw)
Assignee: nobody → kershaw
Blocks: 2048673
Severity: -- → S3
Flags: needinfo?(kershaw)
Priority: -- → P2
Whiteboard: [necko-triaged]

WebSocket transactions are sticky, so once they are dispatched, their Connection() is set and ProcessNewTransaction re-dispatches them onto that same connection. During a Happy Eyeballs race, a losing attempt could re-queue a transaction that the winner has already dispatched, causing it to be re-dispatched onto a connection that no longer has a transport and.

To avoid that, skip re-queuing or re-activating at the Happy Eyeballs handoff points (ProcessTCPConn, ProcessUDPConn, EnterSucceeded, and EnterDone) once the transaction already has a Connection().

Pushed by kjang@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/82d3302274c8 https://hg.mozilla.org/integration/autoland/rev/ac07897db70f Don't re-queue a transaction if it's already dispatched to a connection, r=necko-reviewers,valentin
Status: NEW → RESOLVED
Closed: 20 days ago
Resolution: --- → FIXED
Target Milestone: --- → 154 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: