internal/lsp/lsprpc: make the LSP forwarder exit error clearer
In cases where the remote panics, make it clearer in the forwarder logs
that the remote has disconnected.
Change-Id: Ic7f9370f615198274696a18adaefe7dc62cac02e
Reviewed-on: https://go-review.googlesource.com/c/tools/+/250508
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
diff --git a/internal/lsp/lsprpc/lsprpc.go b/internal/lsp/lsprpc/lsprpc.go
index 2af6bdc..448c0e5 100644
--- a/internal/lsp/lsprpc/lsprpc.go
+++ b/internal/lsp/lsprpc/lsprpc.go
@@ -251,10 +251,13 @@
serverConn.Close()
}
- err = serverConn.Err()
- if err == nil {
- err = clientConn.Err()
+ err = nil
+ if serverConn.Err() != nil {
+ err = errors.Errorf("remote disconnected: %v", err)
+ } else if clientConn.Err() != nil {
+ err = errors.Errorf("client disconnected: %v", err)
}
+ event.Log(ctx, fmt.Sprintf("forwarder: exited with error: %v", err))
return err
}