Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6bdef06

Browse files
authored
test: Fix race condition in provisionerd on cleanup (#322)
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.
1 parent c59c0c9 commit 6bdef06

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

provisionerd/provisionerd_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,9 @@ func createProvisionerDaemonClient(t *testing.T, server provisionerDaemonTestSer
406406
err := proto.DRPCRegisterProvisionerDaemon(mux, &server)
407407
require.NoError(t, err)
408408
srv := drpcserver.New(mux)
409+
ctx, cancelFunc := context.WithCancel(context.Background())
410+
t.Cleanup(cancelFunc)
409411
go func() {
410-
ctx, cancelFunc := context.WithCancel(context.Background())
411-
t.Cleanup(cancelFunc)
412412
_ = srv.Serve(ctx, serverPipe)
413413
}()
414414
return proto.NewDRPCProvisionerDaemonClient(provisionersdk.Conn(clientPipe))
@@ -426,9 +426,9 @@ func createProvisionerClient(t *testing.T, server provisionerTestServer) sdkprot
426426
err := sdkproto.DRPCRegisterProvisioner(mux, &server)
427427
require.NoError(t, err)
428428
srv := drpcserver.New(mux)
429+
ctx, cancelFunc := context.WithCancel(context.Background())
430+
t.Cleanup(cancelFunc)
429431
go func() {
430-
ctx, cancelFunc := context.WithCancel(context.Background())
431-
t.Cleanup(cancelFunc)
432432
_ = srv.Serve(ctx, serverPipe)
433433
}()
434434
return sdkproto.NewDRPCProvisionerClient(provisionersdk.Conn(clientPipe))

0 commit comments

Comments
 (0)