From 03c07d76ac8361ddd302f5bc0575aee7fb5edc99 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Fri, 26 Jun 2015 09:59:36 -0400 Subject: [PATCH] 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) --- src/librbd/internal.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index fbec53de27b40..15ea41662d4b9 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -1620,7 +1620,6 @@ int invoke_async_request(ImageCtx *ictx, const std::string& request_type, close_image(ictx); return -EBUSY; } - assert(watchers.size() == 1); ictx->md_lock.get_read(); trim_image(ictx, 0, prog_ctx);