[Libguestfs] [PATCH libnbd 2/2] socket-activation: Allow multiple connections

Nir Soffer nsoffer at redhat.com
Sun Nov 7 13:27:47 UTC 2021


When using qemu-nbd with systemd socket activation, trying to connect
additional clients concurrently fails with:

    nbd_connect_uri: connect: server backlog overflowed, see
    https://bugzilla.redhat.com/1925045: Resource temporarily
    unavailable

But this bug was fixed in qemu-nbd long time ago; turns out that libnbd
has the same bug, creating the server socket with:

    listen(s, 1);

Use SOMAXCONN so we can have multiple connections for better
performance. I think this can be very useful for nbdcopy.

Signed-off-by: Nir Soffer <nsoffer at redhat.com>
---
 generator/states-connect-socket-activation.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/generator/states-connect-socket-activation.c b/generator/states-connect-socket-activation.c
index 800d963..2abf61b 100644
--- a/generator/states-connect-socket-activation.c
+++ b/generator/states-connect-socket-activation.c
@@ -147,7 +147,7 @@ STATE_MACHINE {
     return 0;
   }
 
-  if (listen (s, 1) == -1) {
+  if (listen (s, SOMAXCONN) == -1) {
     SET_NEXT_STATE (%.DEAD);
     set_error (errno, "listen");
     close (s);
-- 
2.31.1




More information about the Libguestfs mailing list