From: Kamoltat (Junior) Sirivadhna Date: Fri, 21 Jun 2019 18:06:53 +0000 (-0400) Subject: mgr/progress: Bug fix complete event when OSD marked in X-Git-Tag: v15.1.0~2367^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F28695%2Fhead;p=ceph.git mgr/progress: Bug fix complete event when OSD marked in Swap the order of checking for complete event when OSD is marked in and creating a PG Recovery event so that the event doesn't cancel itself. Signed-off-by: Kamoltat (Junior) Sirivadhna --- diff --git a/src/pybind/mgr/progress/module.py b/src/pybind/mgr/progress/module.py index dea603702bd2..46ab9e7d0391 100644 --- a/src/pybind/mgr/progress/module.py +++ b/src/pybind/mgr/progress/module.py @@ -360,16 +360,7 @@ class Module(MgrModule): self.log.warn("{0} PGs affected by osd.{1} being marked {2}".format( len(affected_pgs), osd_id, marked)) - if len(affected_pgs) > 0: - ev = PgRecoveryEvent( - "Rebalancing after osd.{0} marked {1}".format(osd_id, marked), - refs=[("osd", osd_id)], - which_pgs=affected_pgs, - evacuate_osds=[osd_id] - ) - ev.pg_update(self.get("pg_dump"), self.log) - self._events[ev.id] = ev - + # In the case of the osd coming back in, we might need to cancel # previous recovery event for that osd if marked == "in": @@ -380,6 +371,16 @@ class Module(MgrModule): )) self._complete(ev) + if len(affected_pgs) > 0: + ev = PgRecoveryEvent( + "Rebalancing after osd.{0} marked {1}".format(osd_id, marked), + refs=[("osd", osd_id)], + which_pgs=affected_pgs, + evacuate_osds=[osd_id] + ) + ev.pg_update(self.get("pg_dump"), self.log) + self._events[ev.id] = ev + def _osdmap_changed(self, old_osdmap, new_osdmap): old_dump = old_osdmap.dump() new_dump = new_osdmap.dump()