]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
PrimaryLogPG::try_lock_for_read: give up if missing 12978/head
authorSamuel Just <sjust@redhat.com>
Wed, 18 Jan 2017 18:24:13 +0000 (10:24 -0800)
committerAlexey Sheplyakov <asheplyakov@mirantis.com>
Sun, 29 Jan 2017 04:59:58 +0000 (08:59 +0400)
The only users calc_*_subsets might try to read_lock an object which is
missing on the primary.  Returning false in those cases is perfectly
reasonable and avoids the problem.

Fixes: http://tracker.ceph.com/issues/18583
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit 3833440adea6f8bcb0093603c3a9d16360ed57ec)

src/osd/ReplicatedPG.h

index c5a1a534a367714848c4d8ca1234c1f2801f7ddb..06c2632436b6ea0c70101d71ed750cb5f1f1baef 100644 (file)
@@ -388,6 +388,8 @@ public:
   bool try_lock_for_read(
     const hobject_t &hoid,
     ObcLockManager &manager) override {
+    if (is_missing_object(hoid))
+      return false;
     auto obc = get_object_context(hoid, false, nullptr);
     if (!obc)
       return false;