Skip to content

Update scripting that checks race conditions

Tomasz Maczukin requested to merge replace-race-condition-check into main

What does this MR do?

Makes the race condition detector prettier 🙂

Why was this MR needed?

Currently our race condition detector just checks if the configured limit is not exceeded. But to find the details of what and where generates the race conditions one still needs to manually parse (with eyes!) the output of all test jobs.

This MR will update the race condition detector to a version that will not only guard the limit, but also print details about all found race conditions.

Old version:
.testoutput/
.testoutput/gitlab.com-gitlab-org-gitlab-runner-common.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-internal-volumes-permission.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-session-proxy.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-shell.4.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-cache-gcs.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-shell.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-featureflags.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-vault-secret_engines.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-vault-secret_engines-kv_v2.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.4.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-container-helperimage.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-internal-labels.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-dns.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-common.5.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-kubernetes.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-common.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-internal-volumes.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-log-test.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.7.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-network.3.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-internal-volumes.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-kubernetes.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-session.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-shell.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-tls-ca_chain.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-url.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.6.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-archives.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands-helpers.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-machine.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-internal-networks.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-secrets-resolvers-vault.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-shells.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-machine.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-cache-s3.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-vault-internal-registry.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-retry.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-virtualbox.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-kubernetes.3.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-certificate.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-archives.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-shell.3.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-common.6.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-custom-command.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-session.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-prometheus.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-docker.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-ssh.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-internal-volumes-parser.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-custom.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-path.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-custom.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.5.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-machine.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-common.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-container-windows.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-referees.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-shells.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-machine.3.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-kubernetes.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands-helpers.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-common.3.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-network.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-common.4.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-network.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-container-services.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-vault-auth_methods.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-trace.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-cache-azure.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-shells.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.3.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-service.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands-helpers-archive.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-secrets.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-vault.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-vault-auth_methods-jwt.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-kubernetes.4.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-network.4.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-cache.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-network.5.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-timeperiod.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands-helpers.1.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-vault-secret_engines-kv_v1.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-network.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-vault-service.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-parallels.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands-helpers.4.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands-helpers.5.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-custom.2.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-docker-auth.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-process.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-virtualbox.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-log.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-commands-helpers.3.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker-internal-wait.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-helpers-gitlab_ci_yaml_parser.0.race.output.txt
.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-shell.1.race.output.txt
Found 8 race conditions. Maximum allowed value is 24
New version:
# The limit 24 is the number of race conditions detected on master.
# This number is not allowed to increase, and it has to be lowered when we
# fix an existing race conditions
time="2020-11-07T04:41:09Z" level=info msg="Parsed file" file=.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-custom-command.0.race.output.txt found=6
time="2020-11-07T04:41:09Z" level=info msg="Parsed file" file=.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-docker.4.race.output.txt found=1
time="2020-11-07T04:41:09Z" level=info msg="Parsed file" file=.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-kubernetes.1.race.output.txt found=1
time="2020-11-07T04:41:09Z" level=info msg="Parsed file" file=.testoutput/gitlab.com-gitlab-org-gitlab-runner-executors-shell.0.race.output.txt found=5
time="2020-11-07T04:41:09Z" level=info msg="Parsed file" file=.testoutput/gitlab.com-gitlab-org-gitlab-runner-network.4.race.output.txt found=1
time="2020-11-07T04:41:09Z" level=info msg="Found 14 races"
===============================================
============ RACES DETECTOR REPORT ============
===============================================
-> RACE 1:
   Write: 21   
   --> sync/atomic.CompareAndSwapInt32()  /usr/local/go/src/runtime/race_amd64.s:293 +0xb
   --> sync.(*Mutex).Lock()  /usr/local/go/src/sync/mutex.go:74 +0x49
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:364 +0x61
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).waitForCommand()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:86 +0x77
   
   Previous read: 20   
   --> reflect.typedmemmove()  /usr/local/go/src/runtime/mbarrier.go:177 +0x0
   --> reflect.packEface()  /usr/local/go/src/reflect/value.go:119 +0x103
   --> reflect.valueInterface()  /usr/local/go/src/reflect/value.go:1033 +0x16f
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:1003 +0x38f7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:768 +0x1361
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:77 +0x482
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Recorded 2 goroutines:
   -> Goroutine 21      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:69 +0x1f5
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 20      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:95 +0xacd
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 2:
   Read: 20   
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:982 +0x359a
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:768 +0x1361
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:77 +0x482
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Previous write: 21   
   --> sync/atomic.CompareAndSwapInt32()  /usr/local/go/src/runtime/race_amd64.s:293 +0xb
   --> sync.(*Mutex).Lock()  /usr/local/go/src/sync/mutex.go:74 +0x49
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:364 +0x61
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).waitForCommand()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:86 +0x77
   
   Recorded 2 goroutines:
   -> Goroutine 20      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:95 +0xacd
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 21      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:69 +0x1f5
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 3:
   Write: 21   
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:403 +0x7f8
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).waitForCommand()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:86 +0x77
   
   Previous read: 20   
   --> reflect.typedmemmove()  /usr/local/go/src/runtime/mbarrier.go:177 +0x0
   --> reflect.packEface()  /usr/local/go/src/reflect/value.go:119 +0x103
   --> reflect.valueInterface()  /usr/local/go/src/reflect/value.go:1033 +0x16f
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:1003 +0x38f7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:768 +0x1361
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:77 +0x482
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Recorded 2 goroutines:
   -> Goroutine 21      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:69 +0x1f5
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 20      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:95 +0xacd
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 4:
   Read: 20   
   --> reflect.typedmemmove()  /usr/local/go/src/runtime/mbarrier.go:177 +0x0
   --> reflect.packEface()  /usr/local/go/src/reflect/value.go:119 +0x103
   --> reflect.valueInterface()  /usr/local/go/src/reflect/value.go:1033 +0x16f
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:1003 +0x38f7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:776 +0x1246
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:77 +0x482
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Previous write: 21   
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:403 +0x7f8
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).waitForCommand()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:86 +0x77
   
   Recorded 2 goroutines:
   -> Goroutine 20      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:95 +0xacd
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 21      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:69 +0x1f5
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 5:
   Read: 20   
   --> reflect.typedmemmove()  /usr/local/go/src/runtime/mbarrier.go:177 +0x0
   --> reflect.packEface()  /usr/local/go/src/reflect/value.go:119 +0x103
   --> reflect.valueInterface()  /usr/local/go/src/reflect/value.go:1033 +0x16f
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:1003 +0x38f7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:869 +0xec7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:776 +0x1246
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:77 +0x482
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Previous write: 21   
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:403 +0x79e
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).waitForCommand()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:86 +0x77
   
   Recorded 2 goroutines:
   -> Goroutine 20      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:95 +0xacd
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 21      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:69 +0x1f5
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 6:
   Read: 20   
   --> reflect.Value.String()  /usr/local/go/src/reflect/value.go:1845 +0x5d
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:761 +0x3156
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:869 +0xec7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:869 +0xec7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:776 +0x1246
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:77 +0x482
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Previous write: 21   
   --> github.com/stretchr/testify/assert.CallerInfo()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/assert/assertions.go:147 +0x3c3
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:403 +0x57e
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).waitForCommand()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:86 +0x77
   
   Recorded 2 goroutines:
   -> Goroutine 20      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:95 +0xacd
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 21      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.(*command).Run()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command.go:69 +0x1f5
      --> gitlab.com/gitlab-org/gitlab-runner/executors/custom/command.TestCommand_Run.func4()  /builds/gitlab-org/gitlab-runner/executors/custom/command/command_test.go:133 +0x532
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 7:
   Read: 77   
   --> gitlab.com/gitlab-org/gitlab-terminal.(*ioWrapper).Write()  /go/pkg/mod/gitlab.com/gitlab-org/gitlab-terminal@v0.0.0-20180924111848-5af59b871b1b/wrappers.go:148 +0x5e
   --> io.copyBuffer()  /usr/local/go/src/io/io.go:404 +0x282
   --> gitlab.com/gitlab-org/gitlab-terminal.(*StreamProxy).proxy()  /usr/local/go/src/io/io.go:364 +0xe4
   
   Previous write: 76   
   --> gitlab.com/gitlab-org/gitlab-terminal.(*ioWrapper).Read()  /go/pkg/mod/gitlab.com/gitlab-org/gitlab-terminal@v0.0.0-20180924111848-5af59b871b1b/wrappers.go:173 +0x15e
   --> io.copyBuffer()  /usr/local/go/src/io/io.go:402 +0x143
   --> gitlab.com/gitlab-org/gitlab-terminal.(*StreamProxy).proxy()  /usr/local/go/src/io/io.go:364 +0xe4
   
   Recorded 2 goroutines:
   -> Goroutine 77      
      --> gitlab.com/gitlab-org/gitlab-terminal.(*StreamProxy).Serve()  /go/pkg/mod/gitlab.com/gitlab-org/gitlab-terminal@v0.0.0-20180924111848-5af59b871b1b/stream_proxy.go:23 +0x7e
      --> gitlab.com/gitlab-org/gitlab-terminal.ProxyStream()  /go/pkg/mod/gitlab.com/gitlab-org/gitlab-terminal@v0.0.0-20180924111848-5af59b871b1b/terminal.go:59 +0x56a
      --> gitlab.com/gitlab-org/gitlab-runner/executors/docker.terminalConn.Start.func2()  /builds/gitlab-org/gitlab-runner/executors/docker/terminal.go:134 +0xbf
      --> gitlab.com/gitlab-org/gitlab-runner/session/terminal.ProxyTerminal()  /builds/gitlab-org/gitlab-runner/session/terminal/terminal.go:34 +0xc6
      --> gitlab.com/gitlab-org/gitlab-runner/executors/docker.terminalConn.Start()  /builds/gitlab-org/gitlab-runner/executors/docker/terminal.go:129 +0x7f9
      --> gitlab.com/gitlab-org/gitlab-runner/executors/docker.(*terminalConn).Start()  <autogenerated>:1 +0x101
      --> gitlab.com/gitlab-org/gitlab-runner/session.(*Session).execHandler()  /builds/gitlab-org/gitlab-runner/session/session.go:173 +0x807
      --> gitlab.com/gitlab-org/gitlab-runner/session.(*Session).execHandler-fm()  /builds/gitlab-org/gitlab-runner/session/session.go:142 +0x5f
      --> net/http.HandlerFunc.ServeHTTP()  /usr/local/go/src/net/http/server.go:2007 +0x51
      --> gitlab.com/gitlab-org/gitlab-runner/session.(*Session).withAuthorization.func1()  /builds/gitlab-org/gitlab-runner/session/session.go:103 +0x432
      --> net/http.HandlerFunc.ServeHTTP()  /usr/local/go/src/net/http/server.go:2007 +0x51
      --> github.com/gorilla/mux.(*Router).ServeHTTP()  /go/pkg/mod/github.com/gorilla/mux@v1.3.1-0.20170228224354-599cba5e7b61/mux.go:114 +0x18a
      --> net/http.serverHandler.ServeHTTP()  /usr/local/go/src/net/http/server.go:2802 +0xce
      --> net/http.(*conn).serve()  /usr/local/go/src/net/http/server.go:1890 +0x837
   -> Goroutine 76      
      --> gitlab.com/gitlab-org/gitlab-terminal.(*StreamProxy).Serve()  /go/pkg/mod/gitlab.com/gitlab-org/gitlab-terminal@v0.0.0-20180924111848-5af59b871b1b/stream_proxy.go:24 +0xce
      --> gitlab.com/gitlab-org/gitlab-terminal.ProxyStream()  /go/pkg/mod/gitlab.com/gitlab-org/gitlab-terminal@v0.0.0-20180924111848-5af59b871b1b/terminal.go:59 +0x56a
      --> gitlab.com/gitlab-org/gitlab-runner/executors/docker.terminalConn.Start.func2()  /builds/gitlab-org/gitlab-runner/executors/docker/terminal.go:134 +0xbf
      --> gitlab.com/gitlab-org/gitlab-runner/session/terminal.ProxyTerminal()  /builds/gitlab-org/gitlab-runner/session/terminal/terminal.go:34 +0xc6
      --> gitlab.com/gitlab-org/gitlab-runner/executors/docker.terminalConn.Start()  /builds/gitlab-org/gitlab-runner/executors/docker/terminal.go:129 +0x7f9
      --> gitlab.com/gitlab-org/gitlab-runner/executors/docker.(*terminalConn).Start()  <autogenerated>:1 +0x101
      --> gitlab.com/gitlab-org/gitlab-runner/session.(*Session).execHandler()  /builds/gitlab-org/gitlab-runner/session/session.go:173 +0x807
      --> gitlab.com/gitlab-org/gitlab-runner/session.(*Session).execHandler-fm()  /builds/gitlab-org/gitlab-runner/session/session.go:142 +0x5f
      --> net/http.HandlerFunc.ServeHTTP()  /usr/local/go/src/net/http/server.go:2007 +0x51
      --> gitlab.com/gitlab-org/gitlab-runner/session.(*Session).withAuthorization.func1()  /builds/gitlab-org/gitlab-runner/session/session.go:103 +0x432
      --> net/http.HandlerFunc.ServeHTTP()  /usr/local/go/src/net/http/server.go:2007 +0x51
      --> github.com/gorilla/mux.(*Router).ServeHTTP()  /go/pkg/mod/github.com/gorilla/mux@v1.3.1-0.20170228224354-599cba5e7b61/mux.go:114 +0x18a
      --> net/http.serverHandler.ServeHTTP()  /usr/local/go/src/net/http/server.go:2802 +0xce
      --> net/http.(*conn).serve()  /usr/local/go/src/net/http/server.go:1890 +0x837
   
-> RACE 8:
   Write: 27   
   --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*setupBuildPodFakeRoundTripper).RoundTrip()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes_test.go:1859 +0x5c
   --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*setupBuildPodFakeRoundTripper).RoundTrip-fm()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes_test.go:1858 +0x4f
   --> k8s.io/client-go/rest/fake.roundTripperFunc.RoundTrip()  /go/pkg/mod/k8s.io/client-go@v11.0.1-0.20191004102930-01520b8320fc+incompatible/rest/fake/fake.go:41 +0x3d
   --> net/http.send()  /usr/local/go/src/net/http/client.go:250 +0x6a8
   --> net/http.(*Client).send()  /usr/local/go/src/net/http/client.go:174 +0x1ca
   --> net/http.(*Client).do()  /usr/local/go/src/net/http/client.go:641 +0x2cc
   --> net/http.(*Client).Do()  /usr/local/go/src/net/http/client.go:509 +0x42
   --> k8s.io/client-go/rest.(*Request).request()  /go/pkg/mod/k8s.io/client-go@v11.0.1-0.20191004102930-01520b8320fc+incompatible/rest/request.go:732 +0x639
   --> k8s.io/client-go/rest.(*Request).Do()  /go/pkg/mod/k8s.io/client-go@v11.0.1-0.20191004102930-01520b8320fc+incompatible/rest/request.go:804 +0xd5
   --> k8s.io/client-go/kubernetes/typed/core/v1.(*services).Create()  /go/pkg/mod/k8s.io/client-go@v11.0.1-0.20191004102930-01520b8320fc+incompatible/kubernetes/typed/core/v1/service.go:117 +0x179
   --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*executor).createKubernetesService()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes.go:1088 +0x175
   
   Previous write: 26   
   --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*setupBuildPodFakeRoundTripper).RoundTrip()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes_test.go:1859 +0x5c
   --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*setupBuildPodFakeRoundTripper).RoundTrip-fm()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes_test.go:1858 +0x4f
   --> k8s.io/client-go/rest/fake.roundTripperFunc.RoundTrip()  /go/pkg/mod/k8s.io/client-go@v11.0.1-0.20191004102930-01520b8320fc+incompatible/rest/fake/fake.go:41 +0x3d
   --> net/http.send()  /usr/local/go/src/net/http/client.go:250 +0x6a8
   --> net/http.(*Client).send()  /usr/local/go/src/net/http/client.go:174 +0x1ca
   --> net/http.(*Client).do()  /usr/local/go/src/net/http/client.go:641 +0x2cc
   --> net/http.(*Client).Do()  /usr/local/go/src/net/http/client.go:509 +0x42
   --> k8s.io/client-go/rest.(*Request).request()  /go/pkg/mod/k8s.io/client-go@v11.0.1-0.20191004102930-01520b8320fc+incompatible/rest/request.go:732 +0x639
   --> k8s.io/client-go/rest.(*Request).Do()  /go/pkg/mod/k8s.io/client-go@v11.0.1-0.20191004102930-01520b8320fc+incompatible/rest/request.go:804 +0xd5
   --> k8s.io/client-go/kubernetes/typed/core/v1.(*services).Create()  /go/pkg/mod/k8s.io/client-go@v11.0.1-0.20191004102930-01520b8320fc+incompatible/kubernetes/typed/core/v1/service.go:117 +0x179
   --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*executor).createKubernetesService()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes.go:1088 +0x175
   
   Recorded 2 goroutines:
   -> Goroutine 27      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*executor).makePodProxyServices()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes.go:1043 +0x61e
      --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*executor).setupBuildPod()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes.go:950 +0x11a0
      --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.TestSetupBuildPod.func48()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes_test.go:3085 +0xa5f
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 26      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*executor).makePodProxyServices()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes.go:1043 +0x61e
      --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.(*executor).setupBuildPod()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes.go:950 +0x11a0
      --> gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes.TestSetupBuildPod.func48()  /builds/gitlab-org/gitlab-runner/executors/kubernetes/kubernetes_test.go:3085 +0xa5f
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 9:
   Write: 18   
   --> sync/atomic.CompareAndSwapInt32()  /usr/local/go/src/runtime/race_amd64.s:293 +0xb
   --> sync.(*Mutex).Lock()  /usr/local/go/src/sync/mutex.go:74 +0x49
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:364 +0x61
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run.func1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:193 +0x60
   
   Previous read: 14   
   --> reflect.typedmemmove()  /usr/local/go/src/runtime/mbarrier.go:177 +0x0
   --> reflect.packEface()  /usr/local/go/src/reflect/value.go:119 +0x103
   --> reflect.valueInterface()  /usr/local/go/src/reflect/value.go:1033 +0x16f
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:1003 +0x38f7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:768 +0x1361
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:208 +0xa5f
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
   --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Recorded 2 goroutines:
   -> Goroutine 18      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:192 +0x789
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 14      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:18 +0x1f8
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:91 +0xaf
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 10:
   Read: 14   
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:982 +0x359a
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:768 +0x1361
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:208 +0xa5f
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
   --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Previous write: 18   
   --> sync/atomic.CompareAndSwapInt32()  /usr/local/go/src/runtime/race_amd64.s:293 +0xb
   --> sync.(*Mutex).Lock()  /usr/local/go/src/sync/mutex.go:74 +0x49
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:364 +0x61
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run.func1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:193 +0x60
   
   Recorded 2 goroutines:
   -> Goroutine 14      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:18 +0x1f8
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:91 +0xaf
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 18      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:192 +0x789
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 11:
   Write: 18   
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:403 +0x7f8
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run.func1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:193 +0x60
   
   Previous read: 14   
   --> reflect.typedmemmove()  /usr/local/go/src/runtime/mbarrier.go:177 +0x0
   --> reflect.packEface()  /usr/local/go/src/reflect/value.go:119 +0x103
   --> reflect.valueInterface()  /usr/local/go/src/reflect/value.go:1033 +0x16f
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:1003 +0x38f7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:768 +0x1361
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:208 +0xa5f
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
   --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Recorded 2 goroutines:
   -> Goroutine 18      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:192 +0x789
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 14      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:18 +0x1f8
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:91 +0xaf
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 12:
   Read: 21   
   --> reflect.typedmemmove()  /usr/local/go/src/runtime/mbarrier.go:177 +0x0
   --> reflect.packEface()  /usr/local/go/src/reflect/value.go:119 +0x103
   --> reflect.valueInterface()  /usr/local/go/src/reflect/value.go:1033 +0x16f
   --> fmt.(*pp).printValue()  /usr/local/go/src/reflect/value.go:1003 +0x38f7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:869 +0xec7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:768 +0x1361
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:208 +0xa5f
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
   --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Previous write: 22   
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:403 +0x79e
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run.func1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:193 +0x60
   
   Recorded 2 goroutines:
   -> Goroutine 21      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:18 +0x1f8
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:91 +0xaf
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 22      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:192 +0x789
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 13:
   Read: 21   
   --> reflect.Value.String()  /usr/local/go/src/reflect/value.go:1845 +0x5d
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:761 +0x3156
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:869 +0xec7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:869 +0xec7
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:810 +0x283f
   --> fmt.(*pp).printValue()  /usr/local/go/src/fmt/print.go:880 +0x25da
   --> fmt.(*pp).printArg()  /usr/local/go/src/fmt/print.go:716 +0x2ee
   --> fmt.(*pp).doPrintf()  /usr/local/go/src/fmt/print.go:1126 +0x912
   --> fmt.Sprintf()  /usr/local/go/src/fmt/print.go:219 +0x73
   --> github.com/stretchr/testify/mock.Arguments.Diff()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:768 +0x1361
   --> github.com/stretchr/testify/mock.(*Mock).findExpectedCall()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:287 +0x16a
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:366 +0xb3
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockKillWaiter).KillAndWait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_KillWaiter.go:14 +0x116
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:208 +0xa5f
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
   --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Previous write: 22   
   --> github.com/stretchr/testify/assert.CallerInfo()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/assert/assertions.go:147 +0x3c3
   --> github.com/stretchr/testify/mock.(*Mock).MethodCalled()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:403 +0x57e
   --> github.com/stretchr/testify/mock.(*Mock).Called()  /go/pkg/mod/github.com/stretchr/testify@v1.6.1/mock/mock.go:356 +0x1e4
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/process.(*MockCommander).Wait()  /builds/gitlab-org/gitlab-runner/helpers/process/mock_Commander.go:48 +0x7b
   --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run.func1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:193 +0x60
   
   Recorded 2 goroutines:
   -> Goroutine 21      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:18 +0x1f8
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:91 +0xaf
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 22      
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:192 +0x789
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.(*executor).Run()  /builds/gitlab-org/gitlab-runner/executors/shell/shell.go:83 +0x214
      --> gitlab.com/gitlab-org/gitlab-runner/executors/shell.TestExecutor_Run.func9.1()  /builds/gitlab-org/gitlab-runner/executors/shell/shell_test.go:123 +0x484
      --> gitlab.com/gitlab-org/gitlab-runner/shells/shellstest.OnEachShell.func1()  /builds/gitlab-org/gitlab-runner/shells/shellstest/utils.go:21 +0xef
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
-> RACE 14:
   Read: 19   
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/trace.(*Buffer).writeRune()  /builds/gitlab-org/gitlab-runner/helpers/trace/buffer.go:149 +0xfb
   --> gitlab.com/gitlab-org/gitlab-runner/helpers/trace.(*Buffer).process()  /builds/gitlab-org/gitlab-runner/helpers/trace/buffer.go:184 +0x152
   
   Previous write: 18   
   --> gitlab.com/gitlab-org/gitlab-runner/network.(*clientJobTrace).setupLogLimit()  /builds/gitlab-org/gitlab-runner/helpers/trace/buffer.go:50 +0xdf
   --> gitlab.com/gitlab-org/gitlab-runner/network.(*clientJobTrace).start()  /builds/gitlab-org/gitlab-runner/network/trace.go:149 +0xe8
   --> gitlab.com/gitlab-org/gitlab-runner/network.TestSendPatchAbort()  /builds/gitlab-org/gitlab-runner/network/trace_test.go:172 +0x848
   --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   
   Recorded 2 goroutines:
   -> Goroutine 19      
      --> gitlab.com/gitlab-org/gitlab-runner/helpers/trace.New()  /builds/gitlab-org/gitlab-runner/helpers/trace/buffer.go:209 +0x5e1
      --> gitlab.com/gitlab-org/gitlab-runner/network.newJobTrace()  /builds/gitlab-org/gitlab-runner/network/trace.go:384 +0x4b
      --> gitlab.com/gitlab-org/gitlab-runner/network.TestSendPatchAbort()  /builds/gitlab-org/gitlab-runner/network/trace_test.go:165 +0x737
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
   -> Goroutine 18      
      --> testing.(*T).Run()  /usr/local/go/src/testing/testing.go:960 +0x651
      --> testing.runTests.func1()  /usr/local/go/src/testing/testing.go:1202 +0xa6
      --> testing.tRunner()  /usr/local/go/src/testing/testing.go:909 +0x199
      --> testing.runTests()  /usr/local/go/src/testing/testing.go:1200 +0x521
      --> testing.(*M).Run()  /usr/local/go/src/testing/testing.go:1117 +0x2ff
      --> main.main()  _testmain.go:504 +0x347
   
Found races!
============
Number of reported races: 14
Defined races limit:      24
Limit exceeded?           no

What's the best way to test this MR?

What are the relevant issue numbers?

Edited by Tomasz Maczukin

Merge request reports