]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add asserts when indexing pg log by reqid
authorSage Weil <sage@newdream.net>
Mon, 2 Aug 2010 19:32:06 +0000 (12:32 -0700)
committerSage Weil <sage@newdream.net>
Mon, 2 Aug 2010 19:32:06 +0000 (12:32 -0700)
This should help catch callers that submit dup entries with the same
request id, causing other problems down the line.

src/osd/PG.h

index d03da957eb690de88be5c7eaec45ab0ee5de0126..9d1e509df7375025285d82890c25e32c9bec95e5 100644 (file)
@@ -414,7 +414,10 @@ public:
            i != log.end();
            i++) {
         objects[i->soid] = &(*i);
-        caller_ops[i->reqid] = &(*i);
+       if (i->reqid_is_indexed()) {
+         assert(caller_ops.count(i->reqid) == 0);
+         caller_ops[i->reqid] = &(*i);
+       }
       }
     }
 
@@ -422,8 +425,10 @@ public:
       if (objects.count(e.soid) == 0 || 
           objects[e.soid]->version < e.version)
         objects[e.soid] = &e;
-      if (e.reqid_is_indexed())
+      if (e.reqid_is_indexed()) {
+       assert(caller_ops.count(e.reqid) == 0);
        caller_ops[e.reqid] = &e;
+      }
     }
     void unindex() {
       objects.clear();