Change:
<!-- Please only use this template for submitting reports about continuously failing tests or jobs in Kubernetes CI --
/sig storage /triage accepted
Pr continue failed beacuse this data race, and i did an fix in ,it's ok now.
/assign
another instance
another instance: (PR: )
flaked again since was merged
fixed in
/reopen Can you backport to 1.21?
Reopened this issue. <detailsIn response to : /reopen Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
opened
Hit this bug also while working on a fix for 1.19 - so maybe we should open another issue/pr for 1.20 and 1.19 ? At least 1.19 will be still around for quite a while
I think that would probably be approved. if anyone wants to take a stab at it
Thanks I'll check over weekend if i can provide this fix also to 1.20 and 1.19
Opened for 1.19 Opened for 1.20
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules: After 90d of inactivity, is applied After 30d of inactivity since was applied, is applied After 30d of inactivity since was applied, the issue is closed You can: Mark this issue or PR as fresh with Mark this issue or PR as rotten with Close this issue or PR with Offer to help out with [Issue Triage][1] Please send feedback to sig-contributor-experience at . /lifecycle stale [1]:
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules: After 90d of inactivity, is applied After 30d of inactivity since was applied, is applied After 30d of inactivity since was applied, the issue is closed You can: Mark this issue or PR as fresh with Close this issue or PR with Offer to help out with [Issue Triage][1] Please send feedback to sig-contributor-experience at . /lifecycle rotten [1]:
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules: After 90d of inactivity, is applied After 30d of inactivity since was applied, is applied After 30d of inactivity since was applied, the issue is closed You can: Reopen this issue or PR with Mark this issue or PR as fresh with Offer to help out with [Issue Triage][1] Please send feedback to sig-contributor-experience at . /close [1]:
Closing this issue. <detailsIn response to : The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. After 90d of inactivity, is applied After 30d of inactivity since was applied, is applied After 30d of inactivity since was applied, the issue is closedReopen this issue or PR with Mark this issue or PR as fresh with Offer to help out with [Issue Triage][1] Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details

Discussion:
} } <del> var extraPods *v1.PodList var volumeAttachments *storagev1.VolumeAttachmentList var pvs *v1.PersistentVolumeList var nodes *v1.NodeList </del> func CreateTestClient() *fake.Clientset { <ins> var extraPods *v1.PodList var volumeAttachments *storagev1.VolumeAttachmentList var pvs *v1.PersistentVolumeList var nodes *v1.NodeList </ins> fakeClient := &fake.Clientset{} extraPods = &v1.PodList{}

// We want also the "mynode" node since all the testing pods live there nodeName = nodeNamePrefix } <del> attachVolumeToNode("lostVolumeName", nodeName) </del> <ins> attachVolumeToNode(nodes, "lostVolumeName", nodeName) </ins> } fakeClient.AddReactor("update", "nodes", func(action core.Action) (handled bool, ret runtime.Object, err error) { updateAction := action.(core.UpdateAction)

obj.Items = append(obj.Items, nodes.Items...) return true, obj, nil }) <del> var mu sync.Mutex </del> volumeAttachments = &storagev1.VolumeAttachmentList{} fakeClient.AddReactor("list", "volumeattachments", func(action core.Action) (handled bool, ret runtime.Object, err error) { obj := &storagev1.VolumeAttachmentList{} <del> mu.Lock() </del> obj.Items = append(obj.Items, volumeAttachments.Items...) <del> mu.Unlock() </del> return true, obj, nil }) fakeClient.AddReactor("create", "volumeattachments", func(action core.Action) (handled bool, ret runtime.Object, err error) { createAction := action.(core.CreateAction) va := createAction.GetObject().(*storagev1.VolumeAttachment) <del> mu.Lock() </del> volumeAttachments.Items = append(volumeAttachments.Items, *va) <del> mu.Unlock() </del> return true, createAction.GetObject(), nil }) pvs = &v1.PersistentVolumeList{} fakeClient.AddReactor("list", "persistentvolumes", func(action core.Action) (handled bool, ret runtime.Object, err error) { obj := &v1.PersistentVolumeList{} <del> mu.Lock() </del> obj.Items = append(obj.Items, pvs.Items...) <del> mu.Unlock() </del> return true, obj, nil }) fakeClient.AddReactor("create", "persistentvolumes", func(action core.Action) (handled bool, ret runtime.Object, err error) { createAction := action.(core.CreateAction) pv := createAction.GetObject().(*v1.PersistentVolume) <del> mu.Lock() </del> pvs.Items = append(pvs.Items, *pv) <del> mu.Unlock() </del> return true, createAction.GetObject(), nil })

} } <del> func attachVolumeToNode(volumeName, nodeName string) { </del> <ins> func attachVolumeToNode(nodes *v1.NodeList, volumeName, nodeName string) { </ins> // if nodeName exists, get the object.. if not create node object var node *v1.Node found := false