[Libguestfs] [PATCH libnbd 2/2] generator: Print a better error message if connect(2) returns EAGAIN.

Richard W.M. Jones rjones at redhat.com
Mon Feb 8 20:06:23 UTC 2021


On Mon, Feb 08, 2021 at 08:47:03PM +0100, Martin Kletzander wrote:
> On Thu, Feb 04, 2021 at 06:10:50PM +0000, Richard W.M. Jones wrote:
> >The new error message is:
> >
> >nbd_connect_unix: connect: server backlog overflowed, see https://bugzilla.redhat.com/1925045: Resource temporarily unavailable
> >
> >Fixes: https://bugzilla.redhat.com/1925045
> >---
> >generator/states-connect.c | 16 ++++++++++++++++
> >1 file changed, 16 insertions(+)
> >
> >diff --git a/generator/states-connect.c b/generator/states-connect.c
> >index 03b34c7..98c26e5 100644
> >--- a/generator/states-connect.c
> >+++ b/generator/states-connect.c
> >@@ -70,6 +70,22 @@ STATE_MACHINE {
> >  if (r == 0 || (r == -1 && errno == EINPROGRESS))
> >    return 0;
> >  assert (r == -1);
> >+#ifdef __linux__
> >+  if (errno == EAGAIN && family == AF_UNIX) {
> >+    /* This can happen on Linux when connecting to a Unix domain
> >+     * socket, if the server's backlog is full.  Unfortunately there
> >+     * is nothing good we can do on the client side when this happens
> >+     * since any solution would involve sleeping or busy-waiting.  The
> 
> Also thanks to the passthrough of the errno any retry procedure can be done in
> the client that uses libnbd.  So for both patches:
> 
> Reviewed-by: Martin Kletzander <mkletzan at redhat.com>

Thanks for reminding me about this one.

I have pushed it.  As well as the reasons you give above, we are also
making attempts to fix the root cause in qemu.  Nothing upstream yet,
but the general direction looks good.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/




More information about the Libguestfs mailing list