]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
migration: Fix possible race when setting rp_state.error
authorFabiano Rosas <farosas@suse.de>
Mon, 18 Sep 2023 17:28:16 +0000 (14:28 -0300)
committerStefan Hajnoczi <stefanha@redhat.com>
Wed, 27 Sep 2023 17:58:02 +0000 (13:58 -0400)
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.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230918172822.19052-3-farosas@suse.de>

migration/migration.c

index 3ee1e6b0d61d79e89104248a4515a7428bf9a2d2..d426b69ada8a6da3cb6dbe999f7cc93e346b406a 100644 (file)
@@ -2074,7 +2074,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);