From 905341b36533c7a1ca8ee9bf2354b69462f7f0fa Mon Sep 17 00:00:00 2001 From: Spike Curtis Date: Tue, 30 Jan 2024 09:07:12 +0400 Subject: [PATCH] feat: add logging to client tailnet yamux --- coderd/agentapi/servicebanner_internal_test.go | 2 +- codersdk/workspaceagents.go | 5 ++++- enterprise/wsproxy/wsproxysdk/wsproxysdk.go | 6 ++++-- tailnet/client.go | 8 +++++--- tailnet/coordinator_test.go | 2 +- tailnet/service_test.go | 2 +- 6 files changed, 16 insertions(+), 9 deletions(-) diff --git a/coderd/agentapi/servicebanner_internal_test.go b/coderd/agentapi/servicebanner_internal_test.go index d559bf08604b2..6098d7df5f3d9 100644 --- a/coderd/agentapi/servicebanner_internal_test.go +++ b/coderd/agentapi/servicebanner_internal_test.go @@ -5,12 +5,12 @@ import ( "sync/atomic" "testing" + "github.com/stretchr/testify/require" "golang.org/x/xerrors" agentproto "github.com/coder/coder/v2/agent/proto" "github.com/coder/coder/v2/coderd/appearance" "github.com/coder/coder/v2/codersdk" - "github.com/stretchr/testify/require" ) func TestGetServiceBanner(t *testing.T) { diff --git a/codersdk/workspaceagents.go b/codersdk/workspaceagents.go index b50fd7e71af07..abe0218922c4b 100644 --- a/codersdk/workspaceagents.go +++ b/codersdk/workspaceagents.go @@ -441,7 +441,10 @@ func (tac *tailnetAPIConnector) dial() (proto.DRPCTailnetClient, error) { } return nil, err } - client, err := tailnet.NewDRPCClient(websocket.NetConn(tac.ctx, ws, websocket.MessageBinary)) + client, err := tailnet.NewDRPCClient( + websocket.NetConn(tac.ctx, ws, websocket.MessageBinary), + tac.logger, + ) if err != nil { tac.logger.Debug(tac.ctx, "failed to create DRPCClient", slog.Error(err)) _ = ws.Close(websocket.StatusInternalError, "") diff --git a/enterprise/wsproxy/wsproxysdk/wsproxysdk.go b/enterprise/wsproxy/wsproxysdk/wsproxysdk.go index 68e7ec9c9064f..7ae2b46c6ebb8 100644 --- a/enterprise/wsproxy/wsproxysdk/wsproxysdk.go +++ b/enterprise/wsproxy/wsproxysdk/wsproxysdk.go @@ -461,7 +461,7 @@ func (c *Client) DialCoordinator(ctx context.Context) (agpl.MultiAgentConn, erro go httpapi.HeartbeatClose(ctx, logger, cancel, conn) nc := websocket.NetConn(ctx, conn, websocket.MessageBinary) - client, err := agpl.NewDRPCClient(nc) + client, err := agpl.NewDRPCClient(nc, logger) if err != nil { logger.Debug(ctx, "failed to create DRPCClient", slog.Error(err)) _ = conn.Close(websocket.StatusInternalError, "") @@ -493,7 +493,9 @@ func (c *Client) DialCoordinator(ctx context.Context) (agpl.MultiAgentConn, erro go func() { <-ctx.Done() - ma.Close() + _ = ma.Close() + _ = client.DRPCConn().Close() + <-client.DRPCConn().Closed() _ = conn.Close(websocket.StatusGoingAway, "closed") }() diff --git a/tailnet/client.go b/tailnet/client.go index d48f10c181648..232e534799f13 100644 --- a/tailnet/client.go +++ b/tailnet/client.go @@ -1,19 +1,21 @@ package tailnet import ( - "io" + "context" "net" "github.com/hashicorp/yamux" "golang.org/x/xerrors" + "cdr.dev/slog" "github.com/coder/coder/v2/codersdk/drpc" "github.com/coder/coder/v2/tailnet/proto" ) -func NewDRPCClient(conn net.Conn) (proto.DRPCTailnetClient, error) { +func NewDRPCClient(conn net.Conn, logger slog.Logger) (proto.DRPCTailnetClient, error) { config := yamux.DefaultConfig() - config.LogOutput = io.Discard + config.LogOutput = nil + config.Logger = slog.Stdlib(context.Background(), logger, slog.LevelInfo) session, err := yamux.Client(conn, config) if err != nil { return nil, xerrors.Errorf("multiplex client: %w", err) diff --git a/tailnet/coordinator_test.go b/tailnet/coordinator_test.go index c3e1508b7d453..ab38f91bd0a36 100644 --- a/tailnet/coordinator_test.go +++ b/tailnet/coordinator_test.go @@ -464,7 +464,7 @@ func TestRemoteCoordination(t *testing.T) { serveErr <- err }() - client, err := tailnet.NewDRPCClient(cC) + client, err := tailnet.NewDRPCClient(cC, logger) require.NoError(t, err) protocol, err := client.Coordinate(ctx) require.NoError(t, err) diff --git a/tailnet/service_test.go b/tailnet/service_test.go index bb5683afa04b8..e8217349919b0 100644 --- a/tailnet/service_test.go +++ b/tailnet/service_test.go @@ -51,7 +51,7 @@ func TestClientService_ServeClient_V2(t *testing.T) { errCh <- err }() - client, err := tailnet.NewDRPCClient(c) + client, err := tailnet.NewDRPCClient(c, logger) require.NoError(t, err) // Coordinate pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy