From 98ed9ac5fed6eddf68f163086df72faabd9edcde Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 4 Jan 2014 22:43:26 -0800 Subject: [PATCH] mon: only send messages to current OSDs When choosing a random OSD to send a message to, verify not only that the OSD id is up but that the session is for the same instance of that OSD by checking that the address matches. Fixes: #7093 Backport: emperor, dumpling Signed-off-by: Sage Weil --- src/mon/Session.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mon/Session.h b/src/mon/Session.h index 7df6001581c2..a5f67d9e2dac 100644 --- a/src/mon/Session.h +++ b/src/mon/Session.h @@ -147,7 +147,8 @@ struct MonSessionMap { bool backward = true, forward = true; while (backward || forward) { if (backward) { - if (osdmap->is_up(b->first)) { + if (osdmap->is_up(b->first) && + osdmap->get_addr(b->first) == b->second->con->get_peer_addr()) { s = b->second; break; } -- 2.47.3