Hi, these two patches are to fix live migration issues. The first is about multifd, and the second is to fix some error handling.
But I have a question about using multifd migration. In our current code, when multifd is used during migration, if there is an error before the destination receives all new channels (I mean multifd_recv_new_channel(ioc)), the destination does not exit but keeps waiting (Hang in recvmsg() in qio_channel_socket_readv) until the source exits. My question is about the state of the destination host if fails during this period. I did a test, after applying [1/2] patch, if multifd_new_send_channel_async() fails, the destination host hangs for a while then later pops up a window saying "'QEMU (...) [stopped]' is not responding. You may choose to wait a short while for it to continue or force the application to quit entirely." But after closing the window by clicking, the qemu on the dest still hangs there until I exclusively kill the qemu on the source. The source host keeps running as expected, but I guess the hang phenonmenon in the dest is not right. Would someone kindly give some suggestions on this? Thanks a lot. Fei Li (2): migration: fix the multifd code migration: fix some error handling migration/migration.c | 5 +---- migration/postcopy-ram.c | 3 +++ migration/ram.c | 33 +++++++++++++++++++++++---------- migration/ram.h | 2 +- 4 files changed, 28 insertions(+), 15 deletions(-) -- 2.13.7