Skip to content

Commit 6929b62

Browse files
committed
chore: remove pingWebSocket since yamux runs keepalives
1 parent 4ed1f55 commit 6929b62

File tree

1 file changed

+1
-47
lines changed

1 file changed

+1
-47
lines changed

codersdk/agentsdk/agentsdk.go

+1-47
Original file line numberDiff line numberDiff line change
@@ -205,16 +205,12 @@ func (c *Client) Listen(ctx context.Context) (drpc.Conn, error) {
205205
return nil, codersdk.ReadBodyAsError(res)
206206
}
207207

208-
ctx, cancelFunc := context.WithCancel(ctx)
209-
ctx, wsNetConn := websocketNetConn(ctx, conn, websocket.MessageBinary)
210-
pingClosed := pingWebSocket(ctx, c.SDK.Logger(), conn, "coordinate")
208+
_, wsNetConn := websocketNetConn(ctx, conn, websocket.MessageBinary)
211209

212210
netConn := &closeNetConn{
213211
Conn: wsNetConn,
214212
closeFunc: func() {
215-
cancelFunc()
216213
_ = conn.Close(websocket.StatusGoingAway, "Listen closed")
217-
<-pingClosed
218214
},
219215
}
220216
config := yamux.DefaultConfig()
@@ -720,45 +716,3 @@ func (c *closeNetConn) Close() error {
720716
c.closeFunc()
721717
return c.Conn.Close()
722718
}
723-
724-
func pingWebSocket(ctx context.Context, logger slog.Logger, conn *websocket.Conn, name string) <-chan struct{} {
725-
// Ping once every 30 seconds to ensure that the websocket is alive. If we
726-
// don't get a response within 30s we kill the websocket and reconnect.
727-
// See: https://github.com/coder/coder/pull/5824
728-
closed := make(chan struct{})
729-
go func() {
730-
defer close(closed)
731-
tick := 30 * time.Second
732-
ticker := time.NewTicker(tick)
733-
defer ticker.Stop()
734-
defer func() {
735-
logger.Debug(ctx, fmt.Sprintf("%s pinger exited", name))
736-
}()
737-
for {
738-
select {
739-
case <-ctx.Done():
740-
return
741-
case start := <-ticker.C:
742-
ctx, cancel := context.WithTimeout(ctx, tick)
743-
744-
err := conn.Ping(ctx)
745-
if err != nil {
746-
logger.Error(ctx, fmt.Sprintf("workspace agent %s ping", name), slog.Error(err))
747-
748-
err := conn.Close(websocket.StatusGoingAway, "Ping failed")
749-
if err != nil {
750-
logger.Error(ctx, fmt.Sprintf("close workspace agent %s websocket", name), slog.Error(err))
751-
}
752-
753-
cancel()
754-
return
755-
}
756-
757-
logger.Debug(ctx, fmt.Sprintf("got %s ping", name), slog.F("took", time.Since(start)))
758-
cancel()
759-
}
760-
}
761-
}()
762-
763-
return closed
764-
}

0 commit comments

Comments
 (0)