From: John Spray Date: Mon, 19 Sep 2016 14:22:01 +0000 (+0100) Subject: mds: use a random nonce in Messenger X-Git-Tag: v10.2.6~36^2~12^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=bcf228913e41604fb83aad08449dddad566f5def;p=ceph.git mds: use a random nonce in Messenger The MDS is a client to the OSDs, and responds to blacklists by respawning itself. Usually respawns of a daemonized process result in a PID change, but it's not guaranteed, and it's definitely not the case when someone runs in foreground (e.g. teuthology). Using a random nonce makes sure we won't match against an existing blacklist entry from a failed instance of an MDS daemon with the same name as us. Related to: http://tracker.ceph.com/issues/17236 Signed-off-by: John Spray (cherry picked from commit 5ba612882750dae6f0b057c660cd283293a18a3f) Conflicts: src/ceph_mds.cc : Messenger::create() prototype is different --- diff --git a/src/ceph_mds.cc b/src/ceph_mds.cc index efe22e6b995ff..58bda1b5422ac 100644 --- a/src/ceph_mds.cc +++ b/src/ceph_mds.cc @@ -136,9 +136,12 @@ int main(int argc, const char **argv) "MDS names may not start with a numeric digit." << dendl; } + uint64_t nonce = 0; + get_random_bytes((char*)&nonce, sizeof(nonce)); + Messenger *msgr = Messenger::create(g_ceph_context, g_conf->ms_type, entity_name_t::MDS(-1), "mds", - getpid()); + nonce); if (!msgr) exit(1); msgr->set_cluster_protocol(CEPH_MDS_PROTOCOL);