Trigger double autosync when switching PG state to prevent leaving garbage in non-immediate_commit clusters

This commit is contained in:
Vitaliy Filippov
2024-11-15 01:26:36 +03:00
parent 5864bd067c
commit 8202ee9d74
4 changed files with 34 additions and 2 deletions
+10 -1
View File
@@ -213,6 +213,15 @@ resume_8:
{
goto resume_6;
}
if (immediate_commit == IMMEDIATE_NONE)
{
// Mark OSDs as dirty because deletions have to be synced too!
for (int i = 0; i < op_data->copies_to_delete_count; i++)
{
auto & chunk = op_data->copies_to_delete[i];
this->dirty_osds.insert(chunk.osd_num);
}
}
}
for (int i = 0; i < op_data->dirty_pg_count; i++)
{
@@ -227,7 +236,7 @@ resume_8:
start_pg_peering(pg);
}
}
// FIXME: Free those in the destructor?
// FIXME: Free those in the destructor (not here)?
free(op_data->dirty_pgs);
op_data->dirty_pgs = NULL;
op_data->dirty_osds = NULL;