On 6/13/24 17:11, Peter Krempa wrote:
> The daemon crashes due to unexpected cleanup happening due to bad
> assumptions about locking and state. See patch 5.
>
> Peter Krempa (12):
> qemuBlockJobProcessEventConcludedBackup: Handle potentially NULL
> 'job->disk'
> qemuDomainDiskPrivateDispose: Prevent dangling 'disk' pointer in
> blockjob data
> qemuDomainDeviceBackendChardevForeach: Fix typo in comment
> qemuDomainObjWait: Add documentation
> qemuProcessStop: Prevent crash when qemuDomainObjStopWorker() unlocks
> the VM
> qemuProcessStop: Move code not depending on 'vm->def->id' after reset
> of the ID
> qemu: process: Ensure that 'beingDestroyed' gets cleared only after VM
> id is reset
> qemu: domain: Introduce qemuDomainObjIsActive helper
> qemu: migration: Properly check for live VM after qemuDomainObjWait()
> qemu: migration: Inline 'qemuMigrationDstFinishResume()'
> qemuMigrationSrcRun: Re-check whether VM is active before accessing
> job data
> qemu: migration: Preserve error across qemuDomainSetMaxMemLock() on
> error paths
>
> src/qemu/qemu_backup.c | 6 +--
> src/qemu/qemu_backup.h | 2 +-
> src/qemu/qemu_blockjob.c | 9 +++-
> src/qemu/qemu_domain.c | 40 +++++++++++++-
> src/qemu/qemu_domain.h | 2 +
> src/qemu/qemu_migration.c | 43 +++++++---------
> src/qemu/qemu_process.c | 106 ++++++++++++++++++++++----------------
> 7 files changed, 131 insertions(+), 77 deletions(-)
>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Michal