]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: generate cluster_fingerprint if null
authorSage Weil <sage@redhat.com>
Thu, 21 Aug 2014 18:14:39 +0000 (11:14 -0700)
committerSage Weil <sage@redhat.com>
Wed, 27 Aug 2014 00:00:42 +0000 (17:00 -0700)
This triggers after an upgrade of a legacy cluster that has no fingerprint.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit b245d600163f6337af15aedd1fea68f4e2a668a8)

src/mon/Monitor.cc

index ed6488f7330e45747b9934cb7d0dc6e180168048..fd3a358db8bfc919ab1718c9f1f3ea68a7b34027 100644 (file)
@@ -3864,6 +3864,15 @@ void Monitor::tick()
     finish_contexts(g_ceph_context, maybe_wait_for_quorum);
   }
 
+  if (is_leader() && paxos->is_active() && fingerprint.is_zero()) {
+    // this is only necessary on upgraded clusters.
+    MonitorDBStore::Transaction t;
+    prepare_new_fingerprint(&t);
+    bufferlist tbl;
+    t.encode(tbl);
+    paxos->propose_new_value(tbl, new C_NoopContext);
+  }
+
   new_tick();
 }