From: John Spray Date: Mon, 19 Sep 2016 14:22:01 +0000 (+0100) Subject: mds: use a random nonce in Messenger X-Git-Tag: v11.0.1~91^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5ba612882750dae6f0b057c660cd283293a18a3f;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 --- diff --git a/src/ceph_mds.cc b/src/ceph_mds.cc index 40eada92729..8daf4d73632 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(), 0, Messenger::HAS_MANY_CONNECTIONS); + nonce, 0, Messenger::HAS_MANY_CONNECTIONS); if (!msgr) exit(1); msgr->set_cluster_protocol(CEPH_MDS_PROTOCOL);