On 9/24/26 13:56, Denis V. Lunev wrote:
> This email originated from an IP that might not be authorized by the domain 
> it was sent from.
> Do not click links or open attachments unless it is an email you expected to 
> receive.
> Postcopy migration of dirty bitmaps kills the destination as soon as
> bitmaps live on more than one node:
>
>   qemu-system-x86_64: ../block.c:6400: bdrv_lookup_bs: Assertion
>   `qemu_in_main_thread()' failed.
>
> The postcopy listen thread resolves node names with bdrv_lookup_bs()
> without the BQL. With a single node the name is sent only during setup,
> which runs in the main thread, so the existing test never gets there.
>
> We hit it in production with libvirt: a CBT backup leaves a persistent
> bitmap on every disk, libvirt enables the dirty-bitmaps capability, and
> the next live migration of any VM with more than one disk aborts the
> destination after the guest has already been switched over to it.
>
> Patch 1 resolves every chunk but START from the bitmaps that START set
> up, instead of from the block graph. Patch 2 extends
> migrate-bitmaps-postcopy-test with a bitmap on a second node, and it
> fails without patch 1.
>
> Signed-off-by: Denis V. Lunev <[email protected]>
> Cc: Peter Xu <[email protected]>
> Cc: Fabiano Rosas <[email protected]>
> Cc: Eric Blake <[email protected]>
> Cc: Vladimir Sementsov-Ogievskiy <[email protected]>
>
> Denis V. Lunev (2):
>   migration/block-dirty-bitmap: fix postcopy abort with bitmaps on
>     several nodes
>   iotests/migrate-bitmaps-postcopy-test: add a bitmap on a second node
>
>  migration/block-dirty-bitmap.c                | 59 +++++++++++++++++--
>  .../tests/migrate-bitmaps-postcopy-test       | 19 ++++++
>  2 files changed, 74 insertions(+), 4 deletions(-)
>
>
> base-commit: 942229961efea74b153c44c59188eb08375f10f1
ping

Reply via email to