]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MgrStatMonitor: do not crash on luninous dev version upgrades 16287/head
authorSage Weil <sage@redhat.com>
Wed, 12 Jul 2017 11:30:53 +0000 (07:30 -0400)
committerSage Weil <sage@redhat.com>
Wed, 12 Jul 2017 11:30:53 +0000 (07:30 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/MgrStatMonitor.cc

index 5a81b931276c8be221f1db55cc67dba708230ffc..add84e278b72af26809960e3bc0e82669fea33e8 100644 (file)
@@ -85,13 +85,18 @@ void MgrStatMonitor::update_from_paxos(bool *need_bootstrap)
   get_version(version, bl);
   if (version) {
     assert(bl.length());
-    auto p = bl.begin();
-    ::decode(digest, p);
-    ::decode(health_summary, p);
-    ::decode(health_detail, p);
-    ::decode(service_map, p);
-    dout(10) << __func__ << " v" << version
-            << " service_map e" << service_map.epoch << dendl;
+    try {
+      auto p = bl.begin();
+      ::decode(digest, p);
+      ::decode(health_summary, p);
+      ::decode(health_detail, p);
+      ::decode(service_map, p);
+      dout(10) << __func__ << " v" << version
+              << " service_map e" << service_map.epoch << dendl;
+    }
+    catch (buffer::error& e) {
+      derr << "failed to decode mgrstat state; luminous dev version?" << dendl;
+    }
   }
   check_subs();
   update_logger();