[PATCH v3 01/10] migration: Fix possible race when setting rp_state.error

Fabiano Rosas posted 10 patches 2 years, 6 months ago
Maintainers: Juan Quintela <quintela@redhat.com>, Peter Xu <peterx@redhat.com>, Leonardo Bras <leobras@redhat.com>, Lukas Straub <lukasstraub2@web.de>
There is a newer version of this series
[PATCH v3 01/10] migration: Fix possible race when setting rp_state.error
Posted by Fabiano Rosas 2 years, 6 months ago
We don't need to set the rp_state.error right after a shutdown because
qemu_file_shutdown() always sets the QEMUFile error, so the return
path thread would have seen it and set the rp error itself.

Setting the error outside of the thread is also racy because the
thread could clear it after we set it.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
 migration/migration.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/migration/migration.c b/migration/migration.c
index 5528acb65e..f88c86079c 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2062,7 +2062,6 @@ static int await_return_path_close_on_source(MigrationState *ms)
          * waiting for the destination.
          */
         qemu_file_shutdown(ms->rp_state.from_dst_file);
-        mark_source_rp_bad(ms);
     }
     trace_await_return_path_close_on_source_joining();
     qemu_thread_join(&ms->rp_state.rp_thread);
-- 
2.35.3
Re: [PATCH v3 01/10] migration: Fix possible race when setting rp_state.error
Posted by Peter Xu 2 years, 5 months ago
On Fri, Aug 11, 2023 at 12:08:27PM -0300, Fabiano Rosas wrote:
> We don't need to set the rp_state.error right after a shutdown because
> qemu_file_shutdown() always sets the QEMUFile error, so the return
> path thread would have seen it and set the rp error itself.
> 
> Setting the error outside of the thread is also racy because the
> thread could clear it after we set it.
> 
> Signed-off-by: Fabiano Rosas <farosas@suse.de>

Reviewed-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu