From 92032cd9bc4da7b2073bb4400359efd4d3d0b347 Mon Sep 17 00:00:00 2001 From: Zomatree Date: Thu, 10 Aug 2023 21:04:31 +0100 Subject: [PATCH] chore: Log errors from failed pub/sub messages --- Cargo.toml | 2 +- crates/bonfire/Cargo.toml | 1 + crates/bonfire/src/websocket.rs | 13 +++++++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index a5a13117..01c3fed3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,4 +3,4 @@ members = ["crates/delta", "crates/bonfire", "crates/quark", "crates/core/*"] [patch.crates-io] # mobc-redis = { git = "https://github.com/insertish/mobc", rev = "8b880bb59f2ba80b4c7bc40c649c113d8857a186" } -redis = { git = "https://github.com/insertish/redis-rs", rev = "1a41faf356fd21aebba71cea7eb7eb2653e5f0ef" } +redis = { git = "https://github.com/revoltchat/redis-rs", rev = "cfd75cdebebf55f646697a933981741e74949c89" } diff --git a/crates/bonfire/Cargo.toml b/crates/bonfire/Cargo.toml index f787b979..797d193a 100644 --- a/crates/bonfire/Cargo.toml +++ b/crates/bonfire/Cargo.toml @@ -33,3 +33,4 @@ async-std = { version = "1.8.0", features = [ # core revolt-presence = { path = "../core/presence", features = ["redis-is-patched"] } +sentry = "0.31.5" diff --git a/crates/bonfire/src/websocket.rs b/crates/bonfire/src/websocket.rs index c2bbead6..b0cb8f45 100644 --- a/crates/bonfire/src/websocket.rs +++ b/crates/bonfire/src/websocket.rs @@ -136,13 +136,13 @@ pub fn spawn_client(db: &'static Database, stream: TcpStream, addr: SocketAddr) );*/ // Handle incoming events. - match conn.on_message().next().await.map(|item| { - ( + match conn.on_message().next().await.map(|res| { + res.map(|item|( item.get_channel_name().to_string(), redis_kiss::decode_payload::(&item), - ) + )) }) { - Some((channel, item)) => { + Some(Ok((channel, item))) => { if let Ok(mut event) = item { if state .handle_incoming_event_v1( @@ -160,6 +160,11 @@ pub fn spawn_client(db: &'static Database, stream: TcpStream, addr: SocketAddr) warn!("Failed to deserialise an event for {channel}!"); } } + Some(Err(e)) => { + info!("Error while consuming pub/sub messages: {e:?}"); + sentry::capture_error(&e); + break + } // No more data, assume we disconnected or otherwise // something bad occurred, so disconnect user. None => break,