Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RACE detector] data race in pkg/azure/types.(*AzureInterface).DeepCopyInto() #13619

Closed
tklauser opened this issue Oct 19, 2020 · 1 comment · Fixed by #17054
Closed

[RACE detector] data race in pkg/azure/types.(*AzureInterface).DeepCopyInto() #13619

tklauser opened this issue Oct 19, 2020 · 1 comment · Fixed by #17054
Assignees
Labels
area/azure Impacts Azure based IPAM. kind/bug/race-detector kind/bug This is a bug in the Cilium logic.

Comments

@tklauser
Copy link
Member

tklauser commented Oct 19, 2020

==================
WARNING: DATA RACE
Read at 0x00c0008fd380 by goroutine 127:
  github.com/cilium/cilium/pkg/azure/types.(*AzureInterface).DeepCopyInto()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/types/zz_generated.deepcopy.go:23 +0x66
  github.com/cilium/cilium/pkg/azure/types.(*AzureInterface).DeepCopy()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/types/zz_generated.deepcopy.go:38 +0x90
  github.com/cilium/cilium/pkg/azure/ipam.(*Node).PopulateStatusFields.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/node.go:57 +0xf8
  github.com/cilium/cilium/pkg/ipam/types.foreachInterface()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/types/types.go:364 +0x1dd
  github.com/cilium/cilium/pkg/ipam/types.(*InstanceMap).ForeachInterface()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/types/types.go:386 +0x1b6
  github.com/cilium/cilium/pkg/azure/ipam.(*Node).PopulateStatusFields()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/node.go:54 +0x212
  github.com/cilium/cilium/pkg/ipam.(*Node).syncToAPIServer()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node.go:716 +0x232
  github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func4()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node_manager.go:305 +0x75
  github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/trigger/trigger.go:206 +0x5cf

Previous write at 0x00c0008fd380 by goroutine 125:
  github.com/cilium/cilium/pkg/azure/api/mock.(*API).AssignPrivateIpAddressesVMSS.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/api/mock/mock.go:221 +0x4e4
  github.com/cilium/cilium/pkg/ipam/types.foreachInterface()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/types/types.go:364 +0x1dd
  github.com/cilium/cilium/pkg/ipam/types.(*InstanceMap).ForeachInterface()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/types/types.go:391 +0x3bb
  github.com/cilium/cilium/pkg/azure/api/mock.(*API).AssignPrivateIpAddressesVMSS()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/api/mock/mock.go:197 +0x2a5
  github.com/cilium/cilium/pkg/azure/ipam.(*Node).AllocateIPs()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/node.go:149 +0x47e
  github.com/cilium/cilium/pkg/ipam.(*Node).maintainIPPool()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node.go:620 +0xb66
  github.com/cilium/cilium/pkg/ipam.(*Node).MaintainIPPool()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node.go:678 +0x11c
  github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func2()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node_manager.go:279 +0xbe
  github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/trigger/trigger.go:206 +0x5cf

Goroutine 127 (running) created at:
  github.com/cilium/cilium/pkg/trigger.NewTrigger()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/trigger/trigger.go:129 +0x2c4
  github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node_manager.go:300 +0xfe5
  github.com/cilium/cilium/pkg/azure/ipam.(*IPAMSuite).TestIpamManyNodes()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/ipam_test.go:345 +0xbcd
  runtime.call32()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/runtime/asm_amd64.s:540 +0x3d
  reflect.Value.Call()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/reflect/value.go:336 +0xd8
  gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xabb
  gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xe1

Goroutine 125 (running) created at:
  github.com/cilium/cilium/pkg/trigger.NewTrigger()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/trigger/trigger.go:129 +0x2c4
  github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node_manager.go:274 +0x6b9
  github.com/cilium/cilium/pkg/azure/ipam.(*IPAMSuite).TestIpamManyNodes()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/ipam_test.go:345 +0xbcd
  runtime.call32()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/runtime/asm_amd64.s:540 +0x3d
  reflect.Value.Call()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/reflect/value.go:336 +0xd8
  gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xabb
  gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xe1
==================
==================
WARNING: DATA RACE
Read at 0x00c0005a7680 by goroutine 127:
  runtime.slicecopy()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/runtime/slice.go:246 +0x0
  github.com/cilium/cilium/pkg/azure/types.(*AzureInterface).DeepCopyInto()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/types/zz_generated.deepcopy.go:27 +0x204
  github.com/cilium/cilium/pkg/azure/types.(*AzureInterface).DeepCopy()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/types/zz_generated.deepcopy.go:38 +0x90
  github.com/cilium/cilium/pkg/azure/ipam.(*Node).PopulateStatusFields.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/node.go:57 +0xf8
  github.com/cilium/cilium/pkg/ipam/types.foreachInterface()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/types/types.go:364 +0x1dd
  github.com/cilium/cilium/pkg/ipam/types.(*InstanceMap).ForeachInterface()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/types/types.go:386 +0x1b6
  github.com/cilium/cilium/pkg/azure/ipam.(*Node).PopulateStatusFields()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/node.go:54 +0x212
  github.com/cilium/cilium/pkg/ipam.(*Node).syncToAPIServer()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node.go:716 +0x232
  github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func4()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node_manager.go:305 +0x75
  github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/trigger/trigger.go:206 +0x5cf

Previous write at 0x00c0005a7680 by goroutine 125:
  github.com/cilium/cilium/pkg/azure/api/mock.(*API).AssignPrivateIpAddressesVMSS.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/api/mock/mock.go:221 +0x484
  github.com/cilium/cilium/pkg/ipam/types.foreachInterface()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/types/types.go:364 +0x1dd
  github.com/cilium/cilium/pkg/ipam/types.(*InstanceMap).ForeachInterface()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/types/types.go:391 +0x3bb
  github.com/cilium/cilium/pkg/azure/api/mock.(*API).AssignPrivateIpAddressesVMSS()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/api/mock/mock.go:197 +0x2a5
  github.com/cilium/cilium/pkg/azure/ipam.(*Node).AllocateIPs()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/node.go:149 +0x47e
  github.com/cilium/cilium/pkg/ipam.(*Node).maintainIPPool()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node.go:620 +0xb66
  github.com/cilium/cilium/pkg/ipam.(*Node).MaintainIPPool()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node.go:678 +0x11c
  github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func2()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node_manager.go:279 +0xbe
  github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/trigger/trigger.go:206 +0x5cf

Goroutine 127 (running) created at:
  github.com/cilium/cilium/pkg/trigger.NewTrigger()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/trigger/trigger.go:129 +0x2c4
  github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node_manager.go:300 +0xfe5
  github.com/cilium/cilium/pkg/azure/ipam.(*IPAMSuite).TestIpamManyNodes()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/ipam_test.go:345 +0xbcd
  runtime.call32()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/runtime/asm_amd64.s:540 +0x3d
  reflect.Value.Call()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/reflect/value.go:336 +0xd8
  gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xabb
  gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xe1

Goroutine 125 (running) created at:
  github.com/cilium/cilium/pkg/trigger.NewTrigger()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/trigger/trigger.go:129 +0x2c4
  github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/ipam/node_manager.go:274 +0x6b9
  github.com/cilium/cilium/pkg/azure/ipam.(*IPAMSuite).TestIpamManyNodes()
      /home/travis/gopath/src/github.com/cilium/cilium/pkg/azure/ipam/ipam_test.go:345 +0xbcd
  runtime.call32()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/runtime/asm_amd64.s:540 +0x3d
  reflect.Value.Call()
      /home/travis/.gimme/versions/go1.15.3.linux.amd64/src/reflect/value.go:336 +0xd8
  gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xabb
  gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1()
      /home/travis/gopath/src/github.com/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xe1
==================

https://travis-ci.com/github/cilium/cilium/jobs/401901441

/cc @aanm @christarazi

@tklauser tklauser added kind/bug This is a bug in the Cilium logic. kind/bug/race-detector labels Oct 19, 2020
@christarazi christarazi self-assigned this Oct 19, 2020
@christarazi
Copy link
Member

I'll take this up.

@joestringer joestringer added the area/azure Impacts Azure based IPAM. label Mar 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/azure Impacts Azure based IPAM. kind/bug/race-detector kind/bug This is a bug in the Cilium logic.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants