On 2026-08-12 08:43, 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: Juraj Marcin <[email protected]>
