]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fail gracefully when problems reading /proc/loadavg
authorSage Weil <sage@newdream.net>
Tue, 28 Jul 2009 21:44:48 +0000 (14:44 -0700)
committerSage Weil <sage@newdream.net>
Tue, 28 Jul 2009 21:44:48 +0000 (14:44 -0700)
src/osd/OSD.cc

index ad01b62961bce3e6aee8df8f990990d13edd5ec1..309cd4764f4e782e1661169caea6c408cc82c4e9 100644 (file)
@@ -1103,12 +1103,17 @@ void OSD::heartbeat()
   }
 
   // get CPU load avg
-  ifstream in("/proc/loadavg");
-  if (in.is_open()) {
-    float oneminavg;
-    in >> oneminavg;
-    logger->fset(l_osd_loadavg, oneminavg);
-    in.close();
+  try {
+    ifstream in("/proc/loadavg");
+    if (in.is_open()) {
+      float oneminavg;
+      in >> oneminavg;
+      logger->fset(l_osd_loadavg, oneminavg);
+      in.close();
+    }
+  }
+  catch (ios::failure f) {
+    dout(0) << "heartbeat: failed to read /proc/loadavg" << dendl;
   }
 
   // calc my stats