TRID-20726: [iSCSI/multipath] 26.06 regression: NodeUnstageVolume flushes a reused dm device of a concurrently staged volume
Issue
- On Trident 26.06.0 (ontap-san, iSCSI, multipath), a NodeUnstageVolume for one PVC that runs at the same time as a NodeStageVolume for a different PVC on the same node can remove the multipath map of the volume being staged.
- The stage of that volume then keeps failing with
failed to stage volume: multipath device not found when it is expectedand its pod stays in ContainerCreating. - The iSCSI sessions are up and the LUN's SCSI devices are present; only the dm-multipath map is missing.
- Un-staging errors seen
level=debug msg="Found multipath device by serial." LunSerial=<LUN_Serial> workflow="node_server=unstage"
level=warning msg="Failed to remove ghost multipath device." devicePath=/dev/dm-2 error="refusing to remove \"dm-2\": device still has 1 slave(s)" workflow="node_server=unstage"
level=debug msg=">>>> devices.RemoveMultipathDevicemapping" devicePath=/dev/dm-2 workflow="node_server=unstage"
level=error msg="Error encountered in multipath flush(remove) mapping command." devicePath=/dev/dm-2 error="exit status 1" workflow="node_server=unstage"
level=debug msg=">>>> devices.RemoveMultipathDevicemapping" devicePath=/dev/dm-2 workflow="node_server=unstage"
level=debug msg="<<<< NodeUnstageVolume" Force=false Method=NodeUnstageVolume Type=CSI_Node workflow="node_server=unstage"- Staging errors seen:
level=debug msg="Could not find multipath device for device." device=sdo workflow="node_server=stage"
level=debug msg="Could not find multipath device for device." device=sdp workflow="node_server=stage"
level=error msg="GRPC error: rpc error: code = Internal desc = rpc error: code = Internal desc = failed to stage volume: multipath device not found when it is expected" requestID=<Request_ID>