]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: MonitorDBStore: make get_next_key() work properly 5360/head
authorJoao Eduardo Luis <joao@suse.de>
Mon, 7 Sep 2015 13:12:19 +0000 (14:12 +0100)
committerJoao Eduardo Luis <joao@redhat.com>
Wed, 9 Sep 2015 14:43:51 +0000 (15:43 +0100)
We introduced a significant bug with 2cc7aee, when we fixed issue #11786.
Although that patch would fix the problem described in #11786, we
managed to not increment the iterator upon returning the current key.
This would have the iterator iterating over the same key, forever and
ever.

Signed-off-by: Joao Eduardo Luis <joao@suse.de>
(cherry picked from commit 70d31082fd3dc8c7857994104577f1a3631c678c)

src/mon/MonitorDBStore.h

index ff97878947c5ec11acc8e5d79b85f5f002048fa6..2e45fcc29a4099180c6c40197c6d923a7ad5ef4c 100644 (file)
@@ -393,8 +393,10 @@ class MonitorDBStore
 
       for (; iter->valid(); iter->next()) {
         pair<string,string> r = iter->raw_key();
-        if (sync_prefixes.count(r.first) > 0)
+        if (sync_prefixes.count(r.first) > 0) {
+          iter->next();
           return r;
+        }
       }
       return pair<string,string>();
     }