When destination VM is launched, the "backlog" parameter for listen() is set
to 1 as default in socket_start_incoming_migration_internal(), which will
lead to socket connection error (the queue of pending connections is full)
when "multifd" and "multifd-channels" are set later on and a high number of
channels are used. Set it to a hard-coded higher default value 512 to fix
this issue.

Reported-by: Wei Wang <wei.w.w...@intel.com>
Signed-off-by: Lei Wang <lei4.w...@intel.com>
---
 migration/socket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/migration/socket.c b/migration/socket.c
index 1b6f5baefb..b43a66ef7e 100644
--- a/migration/socket.c
+++ b/migration/socket.c
@@ -179,7 +179,7 @@ socket_start_incoming_migration_internal(SocketAddress 
*saddr,
     QIONetListener *listener = qio_net_listener_new();
     MigrationIncomingState *mis = migration_incoming_get_current();
     size_t i;
-    int num = 1;
+    int num = 512;
 
     qio_net_listener_set_name(listener, "migration-socket-listener");
 
-- 
2.39.1


Reply via email to