From: Kamoltat (Junior) Sirivadhna Date: Tue, 4 Jun 2019 14:32:04 +0000 (-0400) Subject: mgr: Look at PG state when PG epoch >= OSDMap epoch X-Git-Tag: v15.1.0~2517^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f618e56c93ad82a20ab844fddc3d2ded42f2a48e;p=ceph.git mgr: Look at PG state when PG epoch >= OSDMap epoch add a property in pg_update that gets the (current) OSDMap when the event is created, and compare PG epoch with OSDMap epoch. Also made some changes on the spacing of things. Signed-off-by: Kamoltat (Junior) Sirivadhna --- diff --git a/src/pybind/mgr/progress/module.py b/src/pybind/mgr/progress/module.py index f71e769f1974..8bc541de12bd 100644 --- a/src/pybind/mgr/progress/module.py +++ b/src/pybind/mgr/progress/module.py @@ -142,7 +142,7 @@ class PgRecoveryEvent(Event): def evacuating_osds(self): return self. _evacuate_osds - def pg_update(self, pg_dump, log,latest_osd_map_epoch): + def pg_update(self, pg_dump, log, start_epoch): # FIXME: O(pg_num) in python # FIXME: far more fields getting pythonized than we really care about pg_to_state = dict([(p['pgid'], p) for p in pg_dump['pg_stats']]) @@ -180,8 +180,8 @@ class PgRecoveryEvent(Event): # The PG is gone! Probably a pool was deleted. Drop it. complete.add(pg) continue - #Only checks the state of each PGs when it's epoch >= the OSDMap's epoch - if int(info['reported_epoch']) < int(latest_osd_map_epoch): + # Only checks the state of each PGs when it's epoch >= the OSDMap's epoch + if int(info['reported_epoch']) < int(start_epoch): continue state = info['state'] @@ -363,7 +363,7 @@ class Module(MgrModule): which_pgs=affected_pgs, evacuate_osds=[osd_id] ) - ev.pg_update(self.get("pg_dump"), self.log,self._latest_osdmap.get_epoch()) + ev.pg_update(self.get("pg_dump"), self.log, self.get_osdmap().get_epoch()) self._events[ev.id] = ev def _osd_in(self, osd_id): @@ -411,7 +411,7 @@ class Module(MgrModule): data = self.get("pg_dump") for ev_id, ev in self._events.items(): if isinstance(ev, PgRecoveryEvent): - ev.pg_update(data, self.log,self._latest_osdmap.get_epoch()) + ev.pg_update(data, self.log, self.get_osdmap().get_epoch()) self.maybe_complete(ev) def maybe_complete(self, event):