Closed Bug 1682800 Opened 5 years ago Closed 5 years ago

Crash in [@ OOM | large | NS_ABORT_OOM | nsTSubstring<T>::Append | mozilla::net::PMCECompression::Inflate]

Categories

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

defect

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox-esr78 --- wontfix
firefox84 --- wontfix
firefox85 --- wontfix
firefox86 --- fixed

People

(Reporter: sg, Assigned: kershaw)

Details

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

Crash Data

Attachments

(1 file)

Crash report: https://crash-stats.mozilla.org/report/index/8ba5f79a-0ef8-45d7-9c78-8d74d0201214

MOZ_CRASH Reason: MOZ_CRASH(OOM)

Top 10 frames of crashing thread:

0 xul.dll NS_ABORT_OOM xpcom/base/nsDebugImpl.cpp:618
1 xul.dll nsTSubstring<char>::Append xpcom/string/nsTSubstring.cpp:742
2 xul.dll mozilla::net::PMCECompression::Inflate netwerk/protocol/websocket/WebSocketChannel.cpp:856
3 xul.dll mozilla::net::WebSocketChannel::ProcessInput netwerk/protocol/websocket/WebSocketChannel.cpp:1753
4 xul.dll mozilla::net::WebSocketChannel::OnInputStreamReady netwerk/protocol/websocket/WebSocketChannel.cpp:3905
5 xul.dll nsInputStreamReadyEvent::Run xpcom/io/nsStreamUtils.cpp:94
6 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1197
7 xul.dll mozilla::net::nsSocketTransportService::Run netwerk/base/nsSocketTransportService2.cpp:1195
8 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1197
9 xul.dll mozilla::ipc::MessagePumpForNonMainThreads::Run ipc/glue/MessagePump.cpp:302

This is a parent process OOM crash. Could this be avoided by changing the call at https://hg.mozilla.org/releases/mozilla-release/annotate/55359edc5d1cb8addecf9d2e7151782da543f67b/netwerk/protocol/websocket/WebSocketChannel.cpp#l856 to a fallible call, and return NS_ERROR_OUT_OF_MEMORY when it fails?

(In reply to Simon Giesecke [:sg] [he/him] from comment #0)

Crash report: https://crash-stats.mozilla.org/report/index/8ba5f79a-0ef8-45d7-9c78-8d74d0201214

MOZ_CRASH Reason: MOZ_CRASH(OOM)

Top 10 frames of crashing thread:

0 xul.dll NS_ABORT_OOM xpcom/base/nsDebugImpl.cpp:618
1 xul.dll nsTSubstring<char>::Append xpcom/string/nsTSubstring.cpp:742
2 xul.dll mozilla::net::PMCECompression::Inflate netwerk/protocol/websocket/WebSocketChannel.cpp:856
3 xul.dll mozilla::net::WebSocketChannel::ProcessInput netwerk/protocol/websocket/WebSocketChannel.cpp:1753
4 xul.dll mozilla::net::WebSocketChannel::OnInputStreamReady netwerk/protocol/websocket/WebSocketChannel.cpp:3905
5 xul.dll nsInputStreamReadyEvent::Run xpcom/io/nsStreamUtils.cpp:94
6 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1197
7 xul.dll mozilla::net::nsSocketTransportService::Run netwerk/base/nsSocketTransportService2.cpp:1195
8 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1197
9 xul.dll mozilla::ipc::MessagePumpForNonMainThreads::Run ipc/glue/MessagePump.cpp:302

This is a parent process OOM crash. Could this be avoided by changing the call at https://hg.mozilla.org/releases/mozilla-release/annotate/55359edc5d1cb8addecf9d2e7151782da543f67b/netwerk/protocol/websocket/WebSocketChannel.cpp#l856 to a fallible call, and return NS_ERROR_OUT_OF_MEMORY when it fails?

I think we should do this. It's better to fail the connection than crashing the whole process.

Assignee: nobody → kershaw
Severity: -- → S3
Priority: -- → P2
Whiteboard: [necko-triaged]
Pushed by kjang@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e5bd0242c5f7 Make inflation fail if there is no enough memory r=necko-reviewers,valentin
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: