On Wed, Aug 12, 2026 at 08:43:27AM -0400, Peter Xu wrote: > In an unlikely case, when a migration stream is attached to the destination > QEMU and only send <4 bytes to the channel as magic, it's possible that > migration_channel_read_peek() may spin forever. > > Fix it by adding a manual sleep for partial read. > > Since the path isn't attached to a coroutine, it means when partial read > happens, there's yet not much we can do but hang the main thread, it will > happen even for len==0 case. It means monitors can hang due to this, > either partial read or no data arrived (but connection established). > > Leave this for later, the hope is this is extremely rare in production. > > Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3889 > Reported-by: Feifan Qian <[email protected]> > Cc: Daniel P. Berrangé <[email protected]> > Signed-off-by: Peter Xu <[email protected]> > --- > migration/channel.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-)
Reviewed-by: Daniel P. Berrangé <[email protected]> With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
