]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PrimaryLogPG: handle object !exists in handle_watch_timeout 26706/head
authorSage Weil <sage@redhat.com>
Fri, 22 Feb 2019 14:56:16 +0000 (08:56 -0600)
committerPrashant D <pdhange@redhat.com>
Fri, 1 Mar 2019 01:09:07 +0000 (20:09 -0500)
- watch on object
- watch timeout queued
- rados op deletes object
- handle_watch_timeout tries to delete it again

Fixes: http://tracker.ceph.com/issues/38432
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit bdf2d1b97308835bec038b10663bc438da013e9d)

src/osd/PrimaryLogPG.cc

index 5a4d3c1506721b1a778763ee64fbcbbb2154f891..eb937f99b154dd7cee6145cde168556e4d08cb24 100644 (file)
@@ -9906,6 +9906,10 @@ void PrimaryLogPG::handle_watch_timeout(WatchRef watch)
     dout(10) << "handle_watch_timeout not active, no-op" << dendl;
     return;
   }
+  if (!obc->obs.exists) {
+    dout(10) << __func__ << " object " << obc->obs.oi.soid << " dne" << dendl;
+    return;
+  }
   if (is_degraded_or_backfilling_object(obc->obs.oi.soid)) {
     callbacks_for_degraded_object[obc->obs.oi.soid].push_back(
       watch->get_delayed_cb()