From fdc4236d3226a9d971708d386b80d6606bf22125 Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Wed, 2 Sep 2020 14:19:54 +0100 Subject: [PATCH] mgr: don't update pending service map epoch on receiving map from mon It may still be an older service map. Fixes: https://tracker.ceph.com/issues/47275 Signed-off-by: Mykola Golub (cherry picked from commit b9edfbd55f897ebaaad56dc67c15887f57ab61ad) --- src/mgr/DaemonServer.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mgr/DaemonServer.cc b/src/mgr/DaemonServer.cc index c547bff1dfeab..d98901f071468 100644 --- a/src/mgr/DaemonServer.cc +++ b/src/mgr/DaemonServer.cc @@ -2787,12 +2787,13 @@ void DaemonServer::got_service_map() // we just started up dout(10) << "got initial map e" << service_map.epoch << dendl; pending_service_map = service_map; + pending_service_map.epoch = service_map.epoch + 1; } else { // we we already active and therefore must have persisted it, // which means ours is the same or newer. dout(10) << "got updated map e" << service_map.epoch << dendl; + ceph_assert(pending_service_map.epoch > service_map.epoch); } - pending_service_map.epoch = service_map.epoch + 1; }); // cull missing daemons, populate new ones -- 2.47.3