This is successor to [1] but I changed the subject as in the review the patch 'qemu: sync backing chain update in virDomainGetBlockJobInfo' was not considered good one from design POV. However I think the basic patch is helpful to address similar issues. Look at [*] for example, there it allows to sync backing chains during query block stats. In discussion of [1] I stated that first patch will also allow to get rid of stale block job events on reconnection to qemu. But this will require additional work actually so with this patch series stale events are still present. And in the discussion it was also mentioned by Peter that stale events are not harmful for legacy blockjobs code. I also removed previous attempts to eliminate some of stale events. I still keep patch for virDomainGetBlockJobInfo. May be in comparsion to [*] the approach the patch takes will look not so bad :) [1] First version of the patch series https://www.redhat.com/archives/libvir-list/2020-October/msg01133.html Nikolay Shirokovskiy (10): qemu: add option to process offloaded legacy blockjob event ealier qemu: reconnect: precreate legacy blockjobs qemu: remove extra block job finalize on reconnect qemu: remove stale cleanup in qemuProcessRefreshLegacyBlockjob qemu: add note for outdated legacy block job events qemu: use autoptr in qemuProcessRefreshLegacyBlockjobs qemu: refresh backing chain after block job reconnection qemu: move code that depends on backing chain appropriately qemu: fix race on legacy block completion and quering stats [*] qemu: sync backing chain update in virDomainGetBlockJobInfo src/qemu/qemu_blockjob.c | 2 +- src/qemu/qemu_blockjob.h | 7 +++ src/qemu/qemu_driver.c | 50 +++++++++++----- src/qemu/qemu_process.c | 149 ++++++++++++++++++++++++++++------------------- 4 files changed, 132 insertions(+), 76 deletions(-) -- 1.8.3.1