mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-23 21:40:20 +00:00
check subvolume present in backend
If a CreateVolume call is interrupted, post creating the required CSI journal entries, but prior to creating the backing CephFS subvolume, then a subsequent CreateVolume call will return a valid response with a VolumeID that has it's backing image missing. This PR adds a check for backend image, if image notfound it deletes the reserved keys in omap. fixes #839 Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
parent
a4532fafd0
commit
128f3fc2cf
@ -74,6 +74,14 @@ func checkVolExists(ctx context.Context, volOptions *volumeOptions, secret map[s
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, err = getVolumeRootPathCeph(ctx, volOptions, cr, volumeID(vid.FsSubvolName))
|
||||
if err != nil {
|
||||
if _, ok := err.(ErrVolumeNotFound); ok {
|
||||
err = volJournal.UndoReservation(ctx, volOptions.Monitors, cr, volOptions.MetadataPool, vid.FsSubvolName, volOptions.RequestName)
|
||||
return nil, err
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
// TODO: size checks
|
||||
|
||||
// found a volume already available, process and return it!
|
||||
|
Loading…
Reference in New Issue
Block a user