]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/AuthMonitor: ensure initial rotating keys get encoded when create_initial called 2x
authorSage Weil <sage@inktank.com>
Tue, 25 Jun 2013 00:58:48 +0000 (17:58 -0700)
committerSage Weil <sage@inktank.com>
Tue, 25 Jun 2013 00:58:48 +0000 (17:58 -0700)
The create_initial() method may get called multiple times; make sure it
will unconditionally generate new/initial rotating keys.  Move the block
up so that we can easily assert as much.

Broken by commit cd98eb0c651d9ee62e19c2cc92eadae9bed678cd.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
src/mon/AuthMonitor.cc

index 301133af2e5c476769c2b710ab071a13a7aa82c5..24542564e8ef8aa9945cd3cc0b293a5d1c9113f3 100644 (file)
@@ -96,6 +96,11 @@ void AuthMonitor::create_initial()
 {
   dout(10) << "create_initial -- creating initial map" << dendl;
 
+  // initialize rotating keys
+  last_rotating_ver = 0;
+  check_rotate();
+  assert(pending_auth.size() == 1);
+
   KeyRing keyring;
   bufferlist bl;
   int ret = mon->store->get("mkfs", "keyring", bl);
@@ -111,9 +116,6 @@ void AuthMonitor::create_initial()
   inc.inc_type = GLOBAL_ID;
   inc.max_global_id = max_global_id;
   pending_auth.push_back(inc);
-
-  // initalize rotating keys, too
-  check_rotate();
 }
 
 void AuthMonitor::update_from_paxos()