]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: fix rmsnap command
authorMatan Breizman <mbreizma@redhat.com>
Thu, 29 Feb 2024 14:46:31 +0000 (14:46 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Sun, 24 Mar 2024 12:04:16 +0000 (12:04 +0000)
```
There are 2 ways to remove pool snaps, rados tool or mon command (ceph osd pool rmsnap).
It seems that the monitor command is not reporting the actual removal via new_removed_snaps which is later proceed in OSDMap::apply_incremental.
This will result in a clone object leakage since the snap id won't be marked as purged (and won't be trimmed).
```

Fixes: https://tracker.ceph.com/issues/64646
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit f19ad233025957964559410e6697aa8a2a024bc1)

src/mon/OSDMonitor.cc

index 297d4b6c435017b6560dca471e7e54b022b382a5..740c037603cf189d0fd0af66746afced9b88bc1a 100644 (file)
@@ -12957,6 +12957,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
     if (sn) {
       pp->remove_snap(sn);
       pp->set_snap_epoch(pending_inc.epoch);
+      pending_inc.new_removed_snaps[pool].insert(sn);
       ss << "removed pool " << poolstr << " snap " << snapname;
     } else {
       ss << "already removed pool " << poolstr << " snap " << snapname;