From: Sage Weil Date: Fri, 12 Apr 2019 12:07:03 +0000 (-0500) Subject: mgr/progress: behave if pgs disappear (due to a racing pg merge) X-Git-Tag: v14.2.2~190^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7b62ff1d46e242806c561efc46355da03f54230f;p=ceph.git mgr/progress: behave if pgs disappear (due to a racing pg merge) If one of the PGs we care about disappears, consider it complete. Fixes: http://tracker.ceph.com/issues/38157 Signed-off-by: Sage Weil (cherry picked from commit 1ef4f7b33036e8c899620938b3389a9b565a3274) --- diff --git a/src/pybind/mgr/progress/module.py b/src/pybind/mgr/progress/module.py index 805aa6d6a2b..43da79b1121 100644 --- a/src/pybind/mgr/progress/module.py +++ b/src/pybind/mgr/progress/module.py @@ -149,10 +149,17 @@ class PgRecoveryEvent(Event): if self._original_bytes_recovered is None: self._original_bytes_recovered = {} + missing_pgs = [] for pg in self._pgs: pg_str = str(pg) - self._original_bytes_recovered[pg] = \ - pg_to_state[pg_str]['stat_sum']['num_bytes_recovered'] + if pg_str in pg_to_state: + self._original_bytes_recovered[pg] = \ + pg_to_state[pg_str]['stat_sum']['num_bytes_recovered'] + else: + missing_pgs.append(pg) + if pg_dump.get('pg_ready', False): + for pg in missing_pgs: + self._pgs.remove(pg) complete_accumulate = 0.0