]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/LogClient: fix sending dup log items 2243/head
authorSage Weil <sage@redhat.com>
Tue, 12 Aug 2014 14:05:34 +0000 (07:05 -0700)
committerSage Weil <sage@redhat.com>
Tue, 12 Aug 2014 14:05:34 +0000 (07:05 -0700)
We need to skip even the most recently sent item in order to get to the
ones we haven't sent yet.

Fixes: #9080
Backport: firefly, dumpling
Signed-off-by: Sage Weil <sage@redhat.com>
src/common/LogClient.cc

index 6ecc88ac9a76e5328f3d30f015719552e699b8f2..f6fd39b6358e9410d72b7d22ab225eb99de5e098 100644 (file)
@@ -125,6 +125,7 @@ bool LogClient::are_pending()
 
 Message *LogClient::_get_mon_log_message()
 {
+  assert(log_lock.is_locked());
    if (log_queue.empty())
      return NULL;
 
@@ -150,7 +151,7 @@ Message *LogClient::_get_mon_log_message()
   assert(num_unsent <= log_queue.size());
   std::deque<LogEntry>::iterator p = log_queue.begin();
   std::deque<LogEntry> o;
-  while (p->seq < last_log_sent) {
+  while (p->seq <= last_log_sent) {
     ++p;
     assert(p != log_queue.end());
   }