Skip to content

Commit 3fe1072

Browse files
committed
chore: remove pingWebSocket since yamux runs keepalives
1 parent 0aa3ee3 commit 3fe1072

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

0 commit comments

Comments
 (0)