Project

General

Profile

Bug #18990

[rbd-mirror] deleting a snapshot during sync can result in read errors

Added by Jason Dillaman 7 months ago. Updated 5 months ago.

Status:
Resolved
Priority:
Normal
Target version:
-
Start date:
02/19/2017
Due date:
% Done:

0%

Source:
Tags:
Backport:
kraken,jewel
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Release:
Needs Doc:
No

Description

Given an image with zero snapshots and some data written to object X, if you create a snapshot, start a full rbd-mirror image sync, and delete the snapshot between the time when the sync starts and before it reaches object X, it will attempt to read object X from the (now) deleted snapshot revision. This results in an error but the image sync will not automatically recover by detecting that the snapshot no longer exists.

2017-02-19 23:07:28.732236 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 ObjectCopyRequest: remote_oid=rbd_data.12190238e1f29.000000000000083e, local_oid=rbd_data.5e8c3702170c.000000000000083e
2017-02-19 23:07:28.732238 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 send_list_snaps
2017-02-19 23:07:28.732860 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 handle_list_snaps: r=0
2017-02-19 23:07:28.732866 7f5dd67fc700 10 calc_snap_set_diff start 0 end 398, snap_set seq 0
2017-02-19 23:07:28.732869 7f5dd67fc700 20  clone 18446744073709551614 snaps [] -> [1,18446744073709551614] size 4194304 overlap to next []
2017-02-19 23:07:28.732871 7f5dd67fc700 20   start, after 0
2017-02-19 23:07:28.732873 7f5dd67fc700 20  end
2017-02-19 23:07:28.732874 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 compute_diffs: start_remote_snap=0, end_remote_snap_id=398, end_local_snap_id=731, diff=[0~4194304], end_size=4194304, exists=1
2017-02-19 23:07:28.732878 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 compute_diffs: read/write op: 0~4194304
2017-02-19 23:07:28.732881 7f5dd67fc700 10 calc_snap_set_diff start 398 end 399, snap_set seq 0
2017-02-19 23:07:28.732882 7f5dd67fc700 20  clone 18446744073709551614 snaps [] -> [1,18446744073709551614] size 4194304 overlap to next []
2017-02-19 23:07:28.732885 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 compute_diffs: start_remote_snap=398, end_remote_snap_id=399, end_local_snap_id=732, diff=[], end_size=4194304, exists=1
2017-02-19 23:07:28.732888 7f5dd67fc700 10 librados: set snap read snapdir -> 18e
2017-02-19 23:07:28.732892 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 send_read_object: remote_snap_seq=398
2017-02-19 23:07:28.733329 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 handle_read_object: r=-2
2017-02-19 23:07:28.733334 7f5dd67fc700 -1 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 handle_read_object: failed to read from remote object: (2) No such file or directory
2017-02-19 23:07:28.733343 7f5dd67fc700 20 rbd::mirror::image_sync::ObjectCopyRequest: 0x7f5d68275d00 finish: r=-2

Related issues

Copied to rbd - Backport #19037: kraken: rbd-mirror: deleting a snapshot during sync can result in read errors Resolved
Copied to rbd - Backport #19038: jewel: [rbd-mirror] deleting a snapshot during sync can result in read errors Resolved

History

#1 Updated by Jason Dillaman 7 months ago

  • Status changed from In Progress to Need Review

#2 Updated by Jason Dillaman 7 months ago

  • Copied to Backport #19037: kraken: rbd-mirror: deleting a snapshot during sync can result in read errors added

#3 Updated by Jason Dillaman 7 months ago

  • Copied to Backport #19038: jewel: [rbd-mirror] deleting a snapshot during sync can result in read errors added

#4 Updated by Mykola Golub 7 months ago

  • Status changed from Need Review to Pending Backport

#5 Updated by Nathan Cutler 5 months ago

  • Status changed from Pending Backport to Resolved

Also available in: Atom PDF