]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: fix osd mark out code
authorSage Weil <sage@newdream.net>
Thu, 23 Apr 2009 22:12:06 +0000 (15:12 -0700)
committerSage Weil <sage@newdream.net>
Thu, 23 Apr 2009 22:12:06 +0000 (15:12 -0700)
src/mon/OSDMonitor.cc

index 5afa32718aef292db9087b1816d0c3b9a34e0e22..9b788653314f97de5aac5eaac94d0992ed5c085b 100644 (file)
@@ -798,20 +798,22 @@ void OSDMonitor::tick()
   utime_t now = g_clock.now();
   map<int,utime_t>::iterator i = down_pending_out.begin();
   while (i != down_pending_out.end()) {
+    int o = i->first;
     utime_t down = now;
     down -= i->second;
     i++;
 
     if (down.sec() >= g_conf.mon_osd_down_out_interval) {
-      dout(10) << "tick marking osd" << i->first << " OUT after " << down
+      dout(10) << "tick marking osd" << o << " OUT after " << down
               << " sec (target " << g_conf.mon_osd_down_out_interval << ")" << dendl;
-      down_pending_out.erase(i->first);
-      pending_inc.new_weight[i->first] = CEPH_OSD_OUT;
+      pending_inc.new_weight[o] = CEPH_OSD_OUT;
       do_propose = true;
 
       stringstream ss;
-      ss << osdmap.get_inst(i->first) << " out (down for " << down << ")";
+      ss << "osd" << o << " out (down for " << down << ")";
       mon->get_logclient()->log(LOG_DEBUG, ss);
+
+      down_pending_out.erase(o);
     }
   }