-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
Currently testing Cluster API with latest main of CR.
Found the following race condition:
Write at 0x00c0003fa240 by goroutine 1648:
runtime.mapassign()
/usr/local/go/src/internal/runtime/maps/runtime_swiss.go:191 +0x0
k8s.io/apimachinery/pkg/runtime.(*Scheme).AddKnownTypeWithName()
/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/runtime/scheme.go:191 +0x4fa
sigs.k8s.io/controller-runtime/pkg/client/fake.(*fakeClient).addToSchemeIfUnknownAndUnstructuredOrPartial()
/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/client/fake/client.go:1882 +0x2ca
sigs.k8s.io/controller-runtime/pkg/client/fake.(*fakeClient).Get()
/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/client/fake/client.go:609 +0xb5
sigs.k8s.io/cluster-api/controllers/external.GetObjectFromContractVersionedRef()
/home/prow/go/src/sigs.k8s.io/cluster-api/controllers/external/util.go:78 +0x549
sigs.k8s.io/cluster-api/internal/controllers/machineset.(*Reconciler).reconcileExternalTemplateReference()
/home/prow/go/src/sigs.k8s.io/cluster-api/internal/controllers/machineset/machineset_controller.go:1561 +0x184
sigs.k8s.io/cluster-api/internal/controllers/machineset.(*Reconciler).reconcileInfrastructure()
/home/prow/go/src/sigs.k8s.io/cluster-api/internal/controllers/machineset/machineset_controller.go:384 +0x149
sigs.k8s.io/cluster-api/internal/controllers/machineset.(*Reconciler).reconcileInfrastructure-fm()
<autogenerated>:1 +0x5d
sigs.k8s.io/cluster-api/internal/controllers/machineset.(*Reconciler).Reconcile.wrapErrMachineSetReconcileFunc.func3()
/home/prow/go/src/sigs.k8s.io/cluster-api/internal/controllers/machineset/machineset_controller.go:286 +0x61
sigs.k8s.io/cluster-api/internal/controllers/machineset.doReconcile()
/home/prow/go/src/sigs.k8s.io/cluster-api/internal/controllers/machineset/machineset_controller.go:296 +0xf8
sigs.k8s.io/cluster-api/internal/controllers/machineset.(*Reconciler).Reconcile()
/home/prow/go/src/sigs.k8s.io/cluster-api/internal/controllers/machineset/machineset_controller.go:267 +0x16d7
sigs.k8s.io/cluster-api/internal/controllers/machineset.TestMachineSetReconcile_MachinesCreatedConditionFalseOnBadInfraRef()
/home/prow/go/src/sigs.k8s.io/cluster-api/internal/controllers/machineset/machineset_controller_test.go:1011 +0xfb9
testing.tRunner()
/usr/local/go/src/testing/testing.go:1792 +0x225
testing.(*T).Run.gowrap1()
/usr/local/go/src/testing/testing.go:1851 +0x44
(This is a Get with Unstructured with the fake client)
Previous read at 0x00c0003fa240 by goroutine 850:
runtime.mapaccess1()
/usr/local/go/src/internal/runtime/maps/runtime_swiss.go:43 +0x0
k8s.io/apimachinery/pkg/runtime.(*Scheme).ObjectKinds()
/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/runtime/scheme.go:273 +0x149
k8s.io/apimachinery/pkg/runtime/serializer/json.(*Serializer).Decode()
/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/runtime/serializer/json/json.go:166 +0xb72
k8s.io/apimachinery/pkg/runtime.WithoutVersionDecoder.Decode()
/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/runtime/helper.go:256 +0xb3
k8s.io/apimachinery/pkg/runtime.(*WithoutVersionDecoder).Decode()
<autogenerated>:1 +0xb1
k8s.io/client-go/rest.Result.Into()
/home/prow/go/pkg/mod/k8s.io/[email protected]/rest/request.go:1462 +0x9a
k8s.io/client-go/kubernetes/typed/core/v1.(*events).CreateWithEventNamespaceWithContext()
/home/prow/go/pkg/mod/k8s.io/[email protected]/kubernetes/typed/core/v1/event_expansion.go:86 +0x346
k8s.io/client-go/kubernetes/typed/core/v1.(*events).CreateWithEventNamespace()
/home/prow/go/pkg/mod/k8s.io/[email protected]/kubernetes/typed/core/v1/event_expansion.go:69 +0x44
k8s.io/client-go/kubernetes/typed/core/v1.(*EventSinkImpl).Create()
/home/prow/go/pkg/mod/k8s.io/[email protected]/kubernetes/typed/core/v1/event_expansion.go:217 +0x47
k8s.io/client-go/tools/record.recordEvent()
/home/prow/go/pkg/mod/k8s.io/[email protected]/tools/record/event.go:340 +0x1de
k8s.io/client-go/tools/record.(*eventBroadcasterImpl).recordToSink()
/home/prow/go/pkg/mod/k8s.io/[email protected]/tools/record/event.go:302 +0x26d
k8s.io/client-go/tools/record.(*eventBroadcasterImpl).StartRecordingToSink.func1()
/home/prow/go/pkg/mod/k8s.io/[email protected]/tools/record/event.go:279 +0x64
k8s.io/client-go/tools/record.(*eventBroadcasterImpl).StartEventWatcher.func1()
/home/prow/go/pkg/mod/k8s.io/[email protected]/tools/record/event.go:418 +0x1a2
(Seems like a simple create event (CreateWithEventNamespaceWithContext))
Test code: https://github.com/kubernetes-sigs/cluster-api/blob/3adb25101d845af093cc44975b67cc1b94838e2e/internal/controllers/machineset/machineset_controller_test.go#L1005-L1010
PR: kubernetes-sigs/cluster-api#12634
Job: https://prow.k8s.io/view/gs/kubernetes-ci-logs/pr-logs/pull/kubernetes-sigs_cluster-api/12634/pull-cluster-api-test-main/1957403235211808768
Not sure if anything in controller-runtime changed or if there was a change in client-go.
Metadata
Metadata
Assignees
Labels
No labels