Changeset: e799ff5b1923 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e799ff5b1923 Modified Files: tools/merovingian/daemon/client.c tools/merovingian/daemon/controlrunner.c Branch: Jul2021 Log Message:
Sleep briefly on transient errors in accept(). diffs (40 lines): diff --git a/tools/merovingian/daemon/client.c b/tools/merovingian/daemon/client.c --- a/tools/merovingian/daemon/client.c +++ b/tools/merovingian/daemon/client.c @@ -528,6 +528,7 @@ acceptConnections(int socks[3]) case ENOBUFS: case ENOMEM: /* transient failures */ + sleep_ms(500); /* wait a little, maybe it goes away */ break; case ECONNABORTED: /* connection aborted before we began */ diff --git a/tools/merovingian/daemon/controlrunner.c b/tools/merovingian/daemon/controlrunner.c --- a/tools/merovingian/daemon/controlrunner.c +++ b/tools/merovingian/daemon/controlrunner.c @@ -1259,9 +1259,24 @@ controlRunner(void *d) free(p); if (_mero_keep_listening == 0) break; - if (errno != EINTR) { + switch (errno) { + case EMFILE: + case ENFILE: + case ENOBUFS: + case ENOMEM: + /* transient failure, wait a little and continue */ Mfprintf(_mero_ctlerr, "error during accept: %s", strerror(errno)); + sleep_ms(500); + break; + case EINTR: + /* interrupted */ + break; + default: + /* anything else */ + Mfprintf(_mero_ctlerr, "error during accept: %s", + strerror(errno)); + break; } continue; } _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org