Commit cc9a108

Eric Bower  ·  2026-02-26 09:31:40 -0500 EST
parent 9df8384
fix(pssh): fix race
2 files changed,  +9, -2
+4, -0
......@@ -319,6 +319,8 @@ type SSHServer struct {
319319 SessionsCreated *prometheus.CounterVec
320320 SessionsFinished *prometheus.CounterVec
321321 SessionsDuration *prometheus.CounterVec
322+
323+ Mu sync.Mutex
322324 }
323325
324326 func (s *SSHServer) ListenAndServe() error {
......@@ -379,7 +381,9 @@ func (s *SSHServer) ListenAndServe() error {
379381 return err
380382 }
381383
384+ s.Mu.Lock()
382385 s.Listener = listen
386+ s.Mu.Unlock()
383387 defer func() {
384388 _ = s.Listener.Close()
385389 }()
+5, -2
......@@ -520,8 +520,11 @@ func TestSSHServerCommandParsing(t *testing.T) {
520520 // Wait for server to be ready and get the actual listening address
521521 var actualAddr string
522522 for i := 0; i < 50; i++ {
523- if server.Listener != nil {
524- actualAddr = server.Listener.Addr().String()
523+ server.Mu.Lock()
524+ listener := server.Listener
525+ server.Mu.Unlock()
526+ if listener != nil {
527+ actualAddr = listener.Addr().String()
525528 break
526529 }
527530 time.Sleep(10 * time.Millisecond)