From 40358d406dec1d08fe0ed3c188db97713a77e41d Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Tue, 29 Mar 2022 18:15:43 +0200 Subject: [PATCH] lnrpc: fix websocket proxy data race Was discovered in a race unit test in lightning node connect that uses the websocket proxy to connect to the hashmail server on the client side. By not shadowing the err variable we end up reading and writing to the same variable from two different goroutines, which causes the data race. --- lnrpc/websocket_proxy.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lnrpc/websocket_proxy.go b/lnrpc/websocket_proxy.go index 803cf6c36..7aaa9b1f2 100644 --- a/lnrpc/websocket_proxy.go +++ b/lnrpc/websocket_proxy.go @@ -253,7 +253,7 @@ func (p *WebsocketProxy) upgradeToWebSocketProxy(w http.ResponseWriter, payload = newPayload } - _, err = requestForwarder.Write(payload) + _, err := requestForwarder.Write(payload) if err != nil { p.logger.Errorf("WS: error writing message "+ "to upstream http server: %v", err) @@ -338,7 +338,7 @@ func (p *WebsocketProxy) upgradeToWebSocketProxy(w http.ResponseWriter, continue } - err = conn.WriteMessage( + err := conn.WriteMessage( websocket.TextMessage, responseForwarder.Bytes(), ) if err != nil {