From bdc9b77dd49ae042db1a5a1caf2835dd97bb4239 Mon Sep 17 00:00:00 2001 From: Kian Parvin <46668016+kian99@users.noreply.github.com> Date: Thu, 22 Aug 2024 09:11:36 +0200 Subject: [PATCH] use more descriptive error messages in model proxy (#1320) --- internal/rpc/client_test.go | 4 ++-- internal/rpc/proxy.go | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/rpc/client_test.go b/internal/rpc/client_test.go index 695094445..11d187b3a 100644 --- a/internal/rpc/client_test.go +++ b/internal/rpc/client_test.go @@ -266,7 +266,7 @@ func TestProxySockets(t *testing.T) { LoginService: &mockLoginService{}, } err := rpc.ProxySockets(ctx, proxyHelpers) - c.Check(err, qt.ErrorMatches, ".*use of closed network connection") + c.Check(err, qt.ErrorMatches, "error reading from (client|controller).*") errChan <- err return err }) @@ -368,7 +368,7 @@ func TestProxySocketsAuditLogs(t *testing.T) { LoginService: &mockLoginService{}, } err := rpc.ProxySockets(ctx, proxyHelpers) - c.Check(err, qt.ErrorMatches, ".*use of closed network connection") + c.Check(err, qt.ErrorMatches, `error reading from (client|controller).*`) errChan <- err return err }) diff --git a/internal/rpc/proxy.go b/internal/rpc/proxy.go index 4e72ec2c2..142623a07 100644 --- a/internal/rpc/proxy.go +++ b/internal/rpc/proxy.go @@ -5,6 +5,7 @@ import ( "context" "encoding/base64" "encoding/json" + "fmt" "sync" "time" @@ -339,14 +340,14 @@ func (p *clientProxy) start(ctx context.Context) error { msg := new(message) if err := p.src.readJson(&msg); err != nil { // Error reading on the socket implies it is closed, simply return. - return err + return fmt.Errorf("error reading from client: %w", err) } zapctx.Debug(ctx, "Read message from client", zap.Any("message", msg)) err := p.makeControllerConnection(ctx) if err != nil { zapctx.Error(ctx, "error connecting to controller", zap.Error(err)) p.sendError(p.src, msg, err) - return err + return fmt.Errorf("failed to connect to controller: %w", err) } if err := p.auditLogMessage(msg, false); err != nil { zapctx.Error(ctx, "failed to audit log message", zap.Error(err)) @@ -438,7 +439,7 @@ func (p *controllerProxy) start(ctx context.Context) error { msg := new(message) if err := p.src.readJson(msg); err != nil { // Error reading on the socket implies it is closed, simply return. - return err + return fmt.Errorf("error reading from controller: %w", err) } zapctx.Debug(ctx, "Received message from controller", zap.Any("Message", msg)) permissionsRequired, err := checkPermissionsRequired(ctx, msg) @@ -467,7 +468,7 @@ func (p *controllerProxy) start(ctx context.Context) error { zapctx.Error(ctx, "Failed to modify message", zap.Error(err)) p.handleError(msg, err) // An error when modifying the message is a show stopper. - return err + return fmt.Errorf("error modifying controller response: %w", err) } } p.msgs.removeMessage(msg.RequestID) @@ -477,7 +478,7 @@ func (p *controllerProxy) start(ctx context.Context) error { zapctx.Debug(ctx, "Writing modified message to client", zap.Any("Message", msg)) if err := p.dst.writeJson(msg); err != nil { zapctx.Error(ctx, "controllerProxy error writing to dst", zap.Error(err)) - return err + return fmt.Errorf("error writing message to client: %w", err) } } }