]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
objecter: fix uninitialized variable last_seen_version
authorSage Weil <sage@newdream.net>
Tue, 22 Sep 2009 20:17:03 +0000 (13:17 -0700)
committerSage Weil <sage@newdream.net>
Tue, 22 Sep 2009 21:18:50 +0000 (14:18 -0700)
Fixes hang on 'rados df'

src/mon/Paxos.cc
src/mon/PaxosService.cc
src/osdc/Objecter.h

index 7d0362c7b00bb14100805a78c530221b13df0ae5..110cbc0c9fe42c7df9ce7a4fe82e8faf3927fe04 100644 (file)
@@ -887,8 +887,9 @@ void Paxos::update_observers()
 
 bool Paxos::is_readable(version_t v)
 {
-  dout(1) << "is_readable now=" << g_clock.now() << " lease_expire=" << lease_expire << dendl;
-  if(v > last_committed)
+  dout(1) << "is_readable now=" << g_clock.now() << " lease_expire=" << lease_expire
+         << " has v" << v << " lc " << last_committed << dendl;
+  if (v > last_committed)
     return false;
   return 
     (mon->is_peon() || mon->is_leader()) &&
index 0567ce94822426038ae3378c41d08eca0acbc1ec..6b58b671cfc7b9daee11d4d3aaaa184a37e6d25d 100644 (file)
@@ -42,7 +42,7 @@ bool PaxosService::dispatch(PaxosServiceMessage *m)
   
   // make sure our map is readable and up to date
   if (!paxos->is_readable(m->version)) {
-    dout(10) << " waiting for paxos -> readable" << dendl;
+    dout(10) << " waiting for paxos -> readable (v" << m->version << ")" << dendl;
     paxos->wait_for_readable(new C_RetryMessage(this, m));
     return true;
   }
index 8c3f3e6eb9dd8be323e27998a0233480e593ec7d..c575f30a0b6cffc4bd9b46b55a167e5605273954 100644 (file)
@@ -390,6 +390,7 @@ class Objecter {
     messenger(m), monc(mc), osdmap(om),
     last_tid(0), client_inc(-1),
     num_unacked(0), num_uncommitted(0),
+    last_seen_version(0),
     client_lock(l), timer(l)
   { }
   ~Objecter() { }