diff --git a/lib/backend/buffer.go b/lib/backend/buffer.go index 3e89990f92e70..bee29dc2bc0c3 100644 --- a/lib/backend/buffer.go +++ b/lib/backend/buffer.go @@ -277,10 +277,10 @@ func (c *CircularBuffer) removeWatcherWithLock(watcher *BufferWatcher) { c.Warningf("Internal logic error: %v.", trace.DebugReport(trace.BadParameter("empty watcher"))) return } - c.Debugf("Removing watcher %p via external close.", watcher) + c.Debugf("Removing watcher %v (%p) via external close.", watcher.Name, watcher) found := c.watchers.rm(watcher) if !found { - c.Debugf("Could not find watcher %v.", watcher) + c.Debugf("Could not find watcher %v.", watcher.Name) } } diff --git a/lib/web/apiserver_test.go b/lib/web/apiserver_test.go index 95a5f7cea6aac..935821f79d543 100644 --- a/lib/web/apiserver_test.go +++ b/lib/web/apiserver_test.go @@ -1528,7 +1528,13 @@ func TestResizeTerminal(t *testing.T) { require.NoError(t, err) t.Cleanup(func() { require.NoError(t, ws1.Close()) }) - // Create a new user "bar", open a terminal to the session created above + // Wait for session to have started + require.Eventually(t, func() bool { + _, err := s.server.Auth().GetSessionTracker(context.Background(), sess.ID.String()) + return err == nil + }, 3*time.Second, 200*time.Millisecond, "session not available") + + // Create a new user "bar" and join the session created above pack2 := s.authPack(t, "bar") ws2, sess2, err := s.makeTerminal(t, pack2, withSessionID(sess.ID), withParticipantMode(types.SessionPeerMode)) require.NoError(t, err) @@ -1574,7 +1580,7 @@ t1ready: select { case e := <-ws2Messages: if isResizeEventEnvelope(e) { - require.FailNow(t, "terminal 2 should not have received a resize event") + require.FailNow(t, "terminal 2 should not have received a resize event: %v", e) } case err := <-errs: require.NoError(t, err) @@ -1813,9 +1819,9 @@ func TestTerminalNameResolution(t *testing.T) { t.Cleanup(cancel) // Wait for the node to be registered as the registration is asynchronous. - require.Eventuallyf(t, func() bool { + require.Eventually(t, func() bool { nodes, err := s.proxyClient.GetNodes(ctx, "default") - require.NoError(t, err) + assert.NoError(t, err) return len(nodes) == 2 // one created by default and llama }, 5*time.Second, 200*time.Millisecond, "failed to register node") @@ -7298,7 +7304,14 @@ func (s *WebSuite) makeTerminal(t *testing.T, pack *authPack, opts ...terminalOp ws, resp, err := dialer.Dial(u.String(), header) if err != nil { - return nil, nil, trace.Wrap(err) + var sb strings.Builder + sb.WriteString("websocket dial") + if resp != nil { + fmt.Fprintf(&sb, "; status code %v;", resp.StatusCode) + fmt.Fprintf(&sb, "headers: %v; body: ", resp.Header) + io.Copy(&sb, resp.Body) + } + return nil, nil, trace.Wrap(err, sb.String()) } ty, raw, err := ws.ReadMessage()