An aborted connection attempt does not affect listening socket's
ability to accept other connections. If the error is not ignored, Squid
gets stuck after logging an oldAccept error like this one:
oldAccept ...: (53) Software caused connection abort
This bug fix was motivated by accept(2) changes in OpenBSD v6.5 that
resulted in new ECONNABORTED errors under regular deployment conditions:
https://github.com/openbsd/src/commit/
c255b5a
#ifndef ENOTSUP
#define ENOTSUP WSAEOPNOTSUPP
#endif
+#ifndef ECONNABORTED
+#define ECONNABORTED WSAECONNABORTED
+#endif
#undef h_errno
#define h_errno errno /* we'll set it ourselves */
PROF_stop(comm_accept);
- if (ignoreErrno(errcode)) {
+ if (ignoreErrno(errcode) || errcode == ECONNABORTED) {
debugs(50, 5, status() << ": " << xstrerr(errcode));
return Comm::NOMESSAGE;
- } else if (ENFILE == errno || EMFILE == errno) {
+ } else if (errcode == ENFILE || errcode == EMFILE) {
debugs(50, 3, status() << ": " << xstrerr(errcode));
return Comm::COMM_ERROR;
} else {