diff --git a/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux_test.go b/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux_test.go index ad739e54cd21..e682c0963f0b 100644 --- a/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux_test.go +++ b/pkg/kubelet/nodeshutdown/nodeshutdown_manager_linux_test.go @@ -617,6 +617,23 @@ func Test_groupByPriority(t *testing.T) { } } +type buffer struct { + b bytes.Buffer + rw sync.RWMutex +} + +func (b *buffer) String() string { + b.rw.RLock() + defer b.rw.RUnlock() + return b.b.String() +} + +func (b *buffer) Write(p []byte) (n int, err error) { + b.rw.Lock() + defer b.rw.Unlock() + return b.b.Write(p) +} + func Test_managerImpl_processShutdownEvent(t *testing.T) { var ( probeManager = probetest.FakeManager{} @@ -684,7 +701,7 @@ func Test_managerImpl_processShutdownEvent(t *testing.T) { l := klog.Level(1) l.Set("1") // hijack the klog output - tmpWriteBuffer := bytes.NewBuffer(nil) + tmpWriteBuffer := new(buffer) klog.SetOutput(tmpWriteBuffer) klog.LogToStderr(false)