From: Jason Dillaman Date: Fri, 26 Jun 2015 13:59:36 +0000 (-0400) Subject: librbd: assertion failure race condition if watch disconnected X-Git-Tag: v0.94.3~25^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=03c07d76ac8361ddd302f5bc0575aee7fb5edc99;p=ceph.git librbd: assertion failure race condition if watch disconnected It's possible for librbd's watch of the header object to be reset by connection issues just prior to the image being removed. This will causes an assertion failure which assumes at least one watcher on the image. Fixes: #12176 Backport: hammer, firefly Signed-off-by: Jason Dillaman (cherry picked from commit af276de4f299960e43761904c043924cec5fef11) --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index fbec53de27b4..15ea41662d4b 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -1620,7 +1620,6 @@ reprotect_and_return_err: close_image(ictx); return -EBUSY; } - assert(watchers.size() == 1); ictx->md_lock.get_read(); trim_image(ictx, 0, prog_ctx);