Colin Adler 2023-10-06 11:31:53 -05:00 committed by GitHub
parent 2d2bea79a7
commit 03a7d2f70b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 3 deletions

View File

@ -229,6 +229,10 @@ func (s *ServerTailnet) watchAgentUpdates() {
err := s.conn.UpdateNodes(nodes, false)
if err != nil {
if xerrors.Is(err, tailnet.ErrConnClosed) {
s.logger.Warn(context.Background(), "tailnet conn closed, exiting watchAgentUpdates", slog.Error(err))
return
}
s.logger.Error(context.Background(), "update node in server tailnet", slog.Error(err))
return
}

View File

@ -47,6 +47,8 @@ import (
"github.com/coder/coder/v2/cryptorand"
)
var ErrConnClosed = xerrors.New("connection closed")
const (
WorkspaceAgentSSHPort = 1
WorkspaceAgentReconnectingPTYPort = 2
@ -496,7 +498,7 @@ func (c *Conn) UpdateNodes(nodes []*Node, replacePeers bool) error {
defer c.mutex.Unlock()
if c.isClosed() {
return xerrors.New("connection closed")
return ErrConnClosed
}
status := c.Status()
@ -590,7 +592,7 @@ func (c *Conn) RemovePeer(selector PeerSelector) (deleted bool, err error) {
defer c.mutex.Unlock()
if c.isClosed() {
return false, xerrors.New("connection closed")
return false, ErrConnClosed
}
deleted = false
@ -919,7 +921,7 @@ func (c *Conn) Listen(network, addr string) (net.Listener, error) {
c.mutex.Lock()
if c.isClosed() {
c.mutex.Unlock()
return nil, xerrors.New("closed")
return nil, ErrConnClosed
}
if c.listeners == nil {
c.listeners = map[listenKey]*listener{}