Skip to content

Commit

Permalink
test: Fix race condition in provisionerd on cleanup (#322)
Browse files Browse the repository at this point in the history
These goroutines could be ran after the pipe has already been closed.
I'm not certain this resolves this specific leak:

https://github.com/coder/coder/runs/5249481202?check_suite_focus=true#step:7:186

...but I find it likely.
  • Loading branch information
kylecarbs committed Feb 18, 2022
1 parent c59c0c9 commit 6bdef06
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions provisionerd/provisionerd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -406,9 +406,9 @@ func createProvisionerDaemonClient(t *testing.T, server provisionerDaemonTestSer
err := proto.DRPCRegisterProvisionerDaemon(mux, &server)
require.NoError(t, err)
srv := drpcserver.New(mux)
ctx, cancelFunc := context.WithCancel(context.Background())
t.Cleanup(cancelFunc)
go func() {
ctx, cancelFunc := context.WithCancel(context.Background())
t.Cleanup(cancelFunc)
_ = srv.Serve(ctx, serverPipe)
}()
return proto.NewDRPCProvisionerDaemonClient(provisionersdk.Conn(clientPipe))
Expand All @@ -426,9 +426,9 @@ func createProvisionerClient(t *testing.T, server provisionerTestServer) sdkprot
err := sdkproto.DRPCRegisterProvisioner(mux, &server)
require.NoError(t, err)
srv := drpcserver.New(mux)
ctx, cancelFunc := context.WithCancel(context.Background())
t.Cleanup(cancelFunc)
go func() {
ctx, cancelFunc := context.WithCancel(context.Background())
t.Cleanup(cancelFunc)
_ = srv.Serve(ctx, serverPipe)
}()
return sdkproto.NewDRPCProvisionerClient(provisionersdk.Conn(clientPipe))
Expand Down

0 comments on commit 6bdef06

Please sign in to comment.