Bug #36404

mgr/dashboard: Can not delete RBD with snapshots

Added by Volker Theile over 1 year ago. Updated 16 days ago.

In Progress
Target version:
% Done:


3 - minor
Affected Versions:
Pull request ID:
Crash signature:


If there are snapshot sassigned to a RBD, then it is not possible to delete them. In my opinion the deletion should be forced automatically if it is moved to trash and the trash is purged then.
Otherwise it is necessary to explicitely delete every snapshot manually before i can delete a RBD.

screenshot.gif View (990 KB) Volker Theile, 10/11/2018 11:50 AM

Related issues

Blocked by rbd - Feature #43958: librbd: Add support for RBD Snapshot purge in python bindings Rejected


#1 Updated by Patrick Seidensal over 1 year ago

It might be a good idea to tell the user that the RBD, which is about to be deleted still has some associated snapshots which will also be deleted if the user proceeds.


Or maybe even show the snapshots in the deletion dialog, so that the user knows which and how many snapshots will be removed.

#2 Updated by Ricardo Marques over 1 year ago

  • Priority changed from Normal to High

#3 Updated by Ricardo Marques over 1 year ago

  • Tags set to low-hanging-fruit

#4 Updated by Ricardo Marques over 1 year ago

  • Priority changed from High to Normal

#5 Updated by Ricardo Marques over 1 year ago

  • Assignee deleted (Ricardo Marques)

#6 Updated by Laura Paduano about 1 year ago

Traceback from the mgr.log:

2018-11-28 11:44:01.824 7f126de33700 -1 librbd::image::RemoveRequest: 0x55fc7e529340 check_image_snaps: image has snapshots - not removing
2018-11-28 11:44:01.848 7f126b62e700 -1 librbd::api::Trash: remove: error removing image 10cb672ee0af, which is pending deletion
2018-11-28 11:44:01.856 7f126b62e700  0 mgr[dashboard] Error while calling Task(ns=rbd/trash/purge, md={'pool_name': u'test'})
Traceback (most recent call last):
  File "/ceph/src/pybind/mgr/dashboard/", line 530, in _run
    val = self.task.fn(*self.task.fn_args, **self.task.fn_kwargs)
  File "/ceph/src/pybind/mgr/dashboard/services/", line 44, in wrapper
    return f(*args, **kwargs)
  File "/usr/lib64/python2.7/", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/ceph/src/pybind/mgr/dashboard/services/", line 102, in handle_rbd_error
    raise DashboardException(e, component='rbd')
DashboardException: [errno 39] error deleting image from trash

#7 Updated by Lenz Grimmer 4 months ago

  • Tags set to low-hanging-fruit, usability, management
  • Target version changed from v14.0.0 to v15.0.0
  • Tags deleted (low-hanging-fruit)

#8 Updated by Lenz Grimmer 22 days ago

  • Assignee set to Tiago Melo

#9 Updated by Tiago Melo 17 days ago

  • Blocked by Feature #43958: librbd: Add support for RBD Snapshot purge in python bindings added

#10 Updated by Tiago Melo 17 days ago

  • Status changed from New to In Progress

#11 Updated by Tiago Melo 17 days ago

  • Pull request ID set to 33067
Few questions regarding this:
  1. If there are protected snapshots, should we disable the deletion or unprotect it automatically and delete everything?
  2. If there are protected snapshots and the RBD is in the Trash how should we proceed?
    Unprotect automatically and then delete?
    The user no longer has access to the snapshot list and can't unprotect them.
  3. Should it be allowed to move an RBD to trash if it has protected snapshots?

#12 Updated by Tiago Melo 16 days ago

After discussing this at this mornings standup, we decided to display a warning regarding the unprotected snapshots and if the user confirms he wants to delete, we unprotect the snapshots automatically and delete the rbd and all snapshots.

Also available in: Atom PDF