Skip to content

Commit

Permalink
mgr/progress: ensure progress stays between [0,1]
Browse files Browse the repository at this point in the history
If _original_pg_count is 0 then progress can be negative.

Fixes: https://tracker.ceph.com/issues/50591
Related-to: https://tracker.ceph.com/issues/50587
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
  • Loading branch information
dvanders committed Apr 30, 2021
1 parent 462c121 commit 20990a9
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/pybind/mgr/progress/module.py
Expand Up @@ -371,8 +371,14 @@ def pg_update(self, raw_pg_stats, pg_ready, log):

self._pgs = list(set(self._pgs) ^ complete)
completed_pgs = self._original_pg_count - len(self._pgs)
self._progress = (completed_pgs + complete_accumulate)\
/ self._original_pg_count
completed_pgs = max(completed_pgs, 0)
try:
prog = (completed_pgs + complete_accumulate)\
/ self._original_pg_count
except ZeroDivisionError:
prog = 0.0

self._progress = min(max(prog, 0.0), 1.0)

self._refresh()
log.info("Updated progress to %s", self.summary())
Expand Down

0 comments on commit 20990a9

Please sign in to comment.