This is not a bug in libvirt after all. When I fix migration.c to reetry on -EAGAIN as well as -EINTR when flushing a buffer, the migration completes. However, the resulting VM on the other end is corrupt. I can ssh in, but eventually ls of any data not yet in the buffer cache results in IO error, and eventual crash.
The code which I had to patch has been removed in latest upstream git HEAD, investigating that...
This is not a bug in libvirt after all. When I fix migration.c to reetry on -EAGAIN as well as -EINTR when flushing a buffer, the migration completes. However, the resulting VM on the other end is corrupt. I can ssh in, but eventually ls of any data not yet in the buffer cache results in IO error, and eventual crash.
The code which I had to patch has been removed in latest upstream git HEAD, investigating that...