From: Sage Weil Date: Wed, 13 Aug 2014 20:32:29 +0000 (-0700) Subject: mon: fix divide by zero when pg_num adjusted and no osds X-Git-Tag: v0.67.11~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=aaeebceb2189336f5f957f2a797d0448c2754b15;p=ceph.git mon: fix divide by zero when pg_num adjusted and no osds Fixes: #9052 Backport: firefly, dumpling Signed-off-by: Sage Weil Manual backport of 239401db7b51541a57c59a261b89e0f05347c32d --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 48d9e6c2d7d..1fae902106c 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -3640,7 +3640,7 @@ done: pending_inc.new_pools[pool].crash_replay_interval = n; ss << "set pool " << pool << " to crash_replay_interval to " << n; } else if (var == "pg_num") { - int expected_osds = MIN(p->get_pg_num(), osdmap.get_num_osds()); + int expected_osds = MAX(1, MIN(p->get_pg_num(), osdmap.get_num_osds())); int64_t new_pgs = n - p->get_pg_num(); int64_t pgs_per_osd = new_pgs / expected_osds; if (n <= p->get_pg_num()) {