From 2519411a15742b9d1b23c2f9c5bcb20a33a40678 Mon Sep 17 00:00:00 2001 From: Evan Simkowitz Date: Sat, 8 Feb 2025 22:34:23 -0800 Subject: [PATCH 1/2] Add panic handler to sendrpcmessage to catch channel errors --- pkg/wshutil/wshproxy.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/wshutil/wshproxy.go b/pkg/wshutil/wshproxy.go index 0bc5ae088d..6ad0a96193 100644 --- a/pkg/wshutil/wshproxy.go +++ b/pkg/wshutil/wshproxy.go @@ -9,6 +9,7 @@ import ( "sync" "github.com/google/uuid" + "github.com/wavetermdev/waveterm/pkg/panichandler" "github.com/wavetermdev/waveterm/pkg/util/shellutil" "github.com/wavetermdev/waveterm/pkg/util/utilfn" "github.com/wavetermdev/waveterm/pkg/wshrpc" @@ -248,6 +249,9 @@ func (p *WshRpcProxy) HandleAuthentication() (*wshrpc.RpcContext, error) { } func (p *WshRpcProxy) SendRpcMessage(msg []byte) { + defer func() { + panichandler.PanicHandler("WshRpcProxy.SendRpcMessage", recover()) + }() p.ToRemoteCh <- msg } From ba8bab3df1f5843cc48a09ab8dfc938bafe30e94 Mon Sep 17 00:00:00 2001 From: Evan Simkowitz Date: Mon, 10 Feb 2025 11:52:03 -0800 Subject: [PATCH 2/2] add todo --- pkg/wshutil/wshproxy.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/wshutil/wshproxy.go b/pkg/wshutil/wshproxy.go index 6ad0a96193..f1b9c83056 100644 --- a/pkg/wshutil/wshproxy.go +++ b/pkg/wshutil/wshproxy.go @@ -248,6 +248,7 @@ func (p *WshRpcProxy) HandleAuthentication() (*wshrpc.RpcContext, error) { } } +// TODO: Figure out who is sending to closed routes and why we're not catching it func (p *WshRpcProxy) SendRpcMessage(msg []byte) { defer func() { panichandler.PanicHandler("WshRpcProxy.SendRpcMessage", recover())