Always continue operations to not miss resuming after the lack of PG primary

Should fix spurious client hangs during PG primary switchover
This commit is contained in:
Vitaliy Filippov
2024-07-22 00:27:35 +03:00
parent da73d5f45a
commit 8635e0af24
+3 -4
View File
@@ -452,10 +452,9 @@ void cluster_client_t::on_change_pg_state_hook(pool_id_t pool_id, pg_num_t pg_nu
if (pg_cfg.cur_primary != prev_primary)
{
// Repeat this PG operations because an OSD which stopped being primary may not fsync operations
if (wb->repeat_ops_for(this, 0, pool_id, pg_num) > 0)
{
continue_ops();
}
wb->repeat_ops_for(this, 0, pool_id, pg_num);
// Always continue to resume operations hung because of lack of the primary OSD
continue_ops();
}
}