From 9c7a5c0c616eb309b582d61b61b9ef1cc4526909 Mon Sep 17 00:00:00 2001 From: Aapo Alasuutari Date: Sat, 15 Oct 2022 12:08:09 +0300 Subject: fix(ext/websocket): panic on no next ws message from an already closed stream (#16004) --- ext/websocket/lib.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'ext/websocket/lib.rs') diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index e8ada74a2..a31431377 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -489,7 +489,9 @@ pub async fn op_ws_next_event( Some(Ok(Message::Pong(_))) => NextEventResponse::Pong, Some(Err(e)) => NextEventResponse::Error(e.to_string()), None => { - state.borrow_mut().resource_table.close(rid).unwrap(); + // No message was received, presumably the socket closed while we waited. + // Try close the stream, ignoring any errors, and report closed status to JavaScript. + let _ = state.borrow_mut().resource_table.close(rid); NextEventResponse::Closed } }; -- cgit v1.2.3