]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/DaemonServer: skip redundant update of pgp_num_actual 42420/head
authorDan van der Ster <daniel.vanderster@cern.ch>
Tue, 29 Jun 2021 20:36:00 +0000 (22:36 +0200)
committerNeha Ojha <nojha@redhat.com>
Tue, 20 Jul 2021 15:30:57 +0000 (15:30 +0000)
During PG merge the MGR was observed repeatedly sending identical
set pgp_num_actual values, leading to osdmap churn at 2000/hr.

Skip the redundant osd set pgp_num_actual command if the
pgp_num is already our computed next.

Fixes: https://tracker.ceph.com/issues/51433
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
(cherry picked from commit 3f15749de0d550a124f8c6afbd457f17ef020963)

src/mgr/DaemonServer.cc

index a39a2da8eefe84001c0f31d70a326762e1fa2ce3..8f02c1211649f61acb179fe240ad124748f63f8d 100644 (file)
@@ -2736,11 +2736,13 @@ void DaemonServer::adjust_pgs()
                }
              }
            }
-           dout(10) << "pool " << i.first
-                    << " pgp_num_target " << p.get_pgp_num_target()
-                    << " pgp_num " << p.get_pgp_num()
-                    << " -> " << next << dendl;
-           pgp_num_to_set[osdmap.get_pool_name(i.first)] = next;
+           if (next != p.get_pgp_num()) {
+             dout(10) << "pool " << i.first
+                      << " pgp_num_target " << p.get_pgp_num_target()
+                      << " pgp_num " << p.get_pgp_num()
+                      << " -> " << next << dendl;
+             pgp_num_to_set[osdmap.get_pool_name(i.first)] = next;
+           }
          }
        }
        if (left == 0) {