[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RESEND][PATCH] migrate/multifd: fix coredump when the multifd thread cl
From: |
z00619469 |
Subject: |
[RESEND][PATCH] migrate/multifd: fix coredump when the multifd thread cleanup |
Date: |
Wed, 21 Jun 2023 16:53:39 +0800 |
From: Yuhui Chen <chenyuhui5@huawei.com>
There is a coredump while trying to destroy mutex when
p->running is false but p->mutex is not unlock.
Make sure all mutexes has been released before destroy them.
Signed-off-by: Yuhui Chen <chenyuhui5@huawei.com>
---
migration/multifd.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/migration/multifd.c b/migration/multifd.c
index b7ad7002e0..7dcdb2d3a0 100644
--- a/migration/multifd.c
+++ b/migration/multifd.c
@@ -523,9 +523,7 @@ void multifd_save_cleanup(void)
for (i = 0; i < migrate_multifd_channels(); i++) {
MultiFDSendParams *p = &multifd_send_state->params[i];
- if (p->running) {
- qemu_thread_join(&p->thread);
- }
+ qemu_thread_join(&p->thread);
}
for (i = 0; i < migrate_multifd_channels(); i++) {
MultiFDSendParams *p = &multifd_send_state->params[i];
@@ -1040,8 +1038,8 @@ int multifd_load_cleanup(Error **errp)
* however try to wakeup it without harm in cleanup phase.
*/
qemu_sem_post(&p->sem_sync);
- qemu_thread_join(&p->thread);
}
+ qemu_thread_join(&p->thread);
}
for (i = 0; i < migrate_multifd_channels(); i++) {
MultiFDRecvParams *p = &multifd_recv_state->params[i];
--
2.21.0.windows.1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [RESEND][PATCH] migrate/multifd: fix coredump when the multifd thread cleanup,
z00619469 <=