• Kubernetes Submit Queue's avatar
    Merge pull request #61962 from liggitt/flag-race · f3599ba3
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 61962, 58972, 62509, 62606). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.
    
    Avoid data races in unit tests
    
    Setting global flags in unit tests leads to data races like this:
    
    ```
    ==================
    WARNING: DATA RACE
    Write at 0x0000028f5241 by goroutine 47:
      flag.(*boolValue).Set()
          /home/jliggitt/.gvm/gos/go1.9.5/src/flag/flag.go:91 +0x7b
      flag.(*FlagSet).Set()
          /home/jliggitt/.gvm/gos/go1.9.5/src/flag/flag.go:366 +0x10c
      flag.Set()
          /home/jliggitt/.gvm/gos/go1.9.5/src/flag/flag.go:379 +0x76
      k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.TestPodContainerDeviceAllocation()
          /home/jliggitt/go/src/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager_test.go:549 +0x126
      testing.tRunner()
          /home/jliggitt/.gvm/gos/go1.9.5/src/testing/testing.go:746 +0x16c
    
    Previous read at 0x0000028f5241 by goroutine 34:
      k8s.io/kubernetes/vendor/github.com/golang/glog.(*loggingT).output()
          /home/jliggitt/go/src/k8s.io/kubernetes/vendor/github.com/golang/glog/glog.go:682 +0x730
      k8s.io/kubernetes/vendor/github.com/golang/glog.(*loggingT).printf()
          /home/jliggitt/go/src/k8s.io/kubernetes/vendor/github.com/golang/glog/glog.go:655 +0x259
      k8s.io/kubernetes/vendor/github.com/golang/glog.Errorf()
          /home/jliggitt/go/src/k8s.io/kubernetes/vendor/github.com/golang/glog/glog.go:1118 +0x74
      k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*endpointImpl).run()
          /home/jliggitt/go/src/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/endpoint.go:132 +0x1c7e
      k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).addEndpoint.func1()
          /home/jliggitt/go/src/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager.go:378 +0x3f
    
    Goroutine 47 (running) created at:
      testing.(*T).Run()
          /home/jliggitt/.gvm/gos/go1.9.5/src/testing/testing.go:789 +0x568
      testing.runTests.func1()
          /home/jliggitt/.gvm/gos/go1.9.5/src/testing/testing.go:1004 +0xa7
      testing.tRunner()
          /home/jliggitt/.gvm/gos/go1.9.5/src/testing/testing.go:746 +0x16c
      testing.runTests()
          /home/jliggitt/.gvm/gos/go1.9.5/src/testing/testing.go:1002 +0x521
      testing.(*M).Run()
          /home/jliggitt/.gvm/gos/go1.9.5/src/testing/testing.go:921 +0x206
      main.main()
          k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/_test/_testmain.go:68 +0x1d3
    
    Goroutine 34 (finished) created at:
      k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).addEndpoint()
          /home/jliggitt/go/src/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/manager.go:377 +0x9d6
    ==================
    --- FAIL: TestPodContainerDeviceAllocation (0.00s)
    	testing.go:699: race detected during execution of test
    FAIL
    FAIL	k8s.io/kubernetes/pkg/kubelet/cm/devicemanager	0.124s
    
    ```
    f3599ba3
Name
Last commit
Last update
.github Loading commit data...
Godeps Loading commit data...
api Loading commit data...
build Loading commit data...
cluster Loading commit data...
cmd Loading commit data...
docs Loading commit data...
examples Loading commit data...
hack Loading commit data...
logo Loading commit data...
pkg Loading commit data...
plugin Loading commit data...
staging Loading commit data...
test Loading commit data...
third_party Loading commit data...
translations Loading commit data...
vendor Loading commit data...
.bazelrc Loading commit data...
.generated_files Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.kazelcfg.json Loading commit data...
BUILD.bazel Loading commit data...
CHANGELOG-1.10.md Loading commit data...
CHANGELOG-1.11.md Loading commit data...
CHANGELOG-1.2.md Loading commit data...
CHANGELOG-1.3.md Loading commit data...
CHANGELOG-1.4.md Loading commit data...
CHANGELOG-1.5.md Loading commit data...
CHANGELOG-1.6.md Loading commit data...
CHANGELOG-1.7.md Loading commit data...
CHANGELOG-1.8.md Loading commit data...
CHANGELOG-1.9.md Loading commit data...
CHANGELOG.md Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
Makefile.generated_files Loading commit data...
OWNERS Loading commit data...
OWNERS_ALIASES Loading commit data...
README.md Loading commit data...
SUPPORT.md Loading commit data...
WORKSPACE Loading commit data...
code-of-conduct.md Loading commit data...
labels.yaml Loading commit data...