Skip to content

Fix flaky data race in test

Mikhail Mazurskiy requested to merge ash2k/fix-flaky-test2 into master
exec ${PAGER:-/usr/bin/less} "$0" || exit 1
Executing tests from //internal/module/reverse_tunnel/agent:agent_test
-----------------------------------------------------------------------------
==================
WARNING: DATA RACE
Write at 0x00c00078c3e0 by goroutine 17:
  runtime.racewrite()
      <autogenerated>:1 +0x10
  k8s.io/apimachinery/pkg/util/wait.(*Group).Wait()
      external/io_k8s_apimachinery/pkg/util/wait/wait.go:49 +0x248
  gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v15/internal/module/reverse_tunnel/agent.TestConnManager_StartsMinIdleConnectionsOnRun()
      internal/module/reverse_tunnel/agent/connection_manager_test.go:33 +0x23c
  testing.tRunner()
      GOROOT/src/testing/testing.go:1439 +0x18c
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1486 +0x44

Previous read at 0x00c00078c3e0 by goroutine 40:
  runtime.raceread()
      <autogenerated>:1 +0x10
  k8s.io/apimachinery/pkg/util/wait.(*Group).Start()
      external/io_k8s_apimachinery/pkg/util/wait/wait.go:70 +0x38
  k8s.io/apimachinery/pkg/util/wait.(*Group).StartWithContext()
      external/io_k8s_apimachinery/pkg/util/wait/wait.go:63 +0xe8
  gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v15/internal/module/reverse_tunnel/agent.(*connectionManager).startConnectionLocked()
      internal/module/reverse_tunnel/agent/connection_manager.go:75 +0x3d4
  gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v15/internal/module/reverse_tunnel/agent.(*connectionManager).Run()
      internal/module/reverse_tunnel/agent/connection_manager.go:56 +0xd4
  gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v15/internal/module/reverse_tunnel/agent.TestConnManager_StartsMinIdleConnectionsOnRun.func2()
      internal/module/reverse_tunnel/agent/connection_manager_test.go:26 +0x50

Goroutine 17 (running) created at:
  testing.(*T).Run()
      GOROOT/src/testing/testing.go:1486 +0x560
  testing.runTests.func1()
      GOROOT/src/testing/testing.go:1839 +0x94
  testing.tRunner()
      GOROOT/src/testing/testing.go:1439 +0x18c
  testing.runTests()
      GOROOT/src/testing/testing.go:1837 +0x6c8
  testing.(*M).Run()
      GOROOT/src/testing/testing.go:1719 +0x878
  main.main()
      bazel-out/darwin_arm64-fastbuild/bin/internal/module/reverse_tunnel/agent/agent_test_/testmain.go:128 +0x51c

Goroutine 40 (running) created at:
  gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v15/internal/module/reverse_tunnel/agent.TestConnManager_StartsMinIdleConnectionsOnRun()
      internal/module/reverse_tunnel/agent/connection_manager_test.go:26 +0x124
  testing.tRunner()
      GOROOT/src/testing/testing.go:1439 +0x18c
  testing.(*T).Run.func1()
      GOROOT/src/testing/testing.go:1486 +0x44
==================
--- FAIL: TestConnManager_StartsMinIdleConnectionsOnRun (0.02s)
    testing.go:1312: race detected during execution of test
--- FAIL: TestConnManager_ActiveRacesWithTimedOut (0.03s)
    testing.go:1312: race detected during execution of test
--- FAIL: TestConnManager_ScalesIdleConnectionsToMaxAndThenToMin (0.59s)
    testing.go:1312: race detected during execution of test
FAIL

Merge request reports