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>
  • Loading branch information
xiexingguo committed Jan 4, 2019
1 parent e0d538d commit b1d3ca5
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/mon/OSDMonitor.cc
Expand Up @@ -979,7 +979,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 b1d3ca5

Please sign in to comment.