Skip to content

Commit

Permalink
mon/OSDMonitor: do not populate void pg_temp into nextmap
Browse files Browse the repository at this point in the history
Due to commit ea723fb, pg_temp with clean acting set are added to inc map.
The original intent was to clear out pg_temps during priming, but as
written it would set a new_pg_temp item clearing the pg_temp even if one
didn't already exist.  Adding the up != acting condition in there makes us
only take that path if there is an existing pg_temp entry to remove.

Fixes: https://tracker.ceph.com/issues/37784
Signed-off-by: Aleksei Zakharov <zakharov.a.g@yandex.ru>
(cherry picked from commit b1d3ca5)
  • Loading branch information
xiexingguo authored and Prashant D committed Jan 8, 2019
1 parent 9b49daf commit 2894677
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/mon/OSDMonitor.cc
Expand Up @@ -1006,7 +1006,8 @@ void OSDMonitor::prime_pg_temp(
int next_up_primary, next_acting_primary;
next.pg_to_up_acting_osds(pgid, &next_up, &next_up_primary,
&next_acting, &next_acting_primary);
if (acting == next_acting && next_up != next_acting)
if (acting == next_acting &&
!(up != acting && next_up == next_acting))
return; // no change since last epoch

if (acting.empty())
Expand Down

0 comments on commit 2894677

Please sign in to comment.