From: Bill Stoddard Date: Thu, 17 Jan 2002 22:35:09 +0000 (+0000) Subject: On HPUX 11.x, the 'ENOBUFS, No buffer space available' X-Git-Tag: 2.0.31~170 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ca30c4d622c9006f2466e447a517fdfaeee90e87;p=thirdparty%2Fapache%2Fhttpd.git On HPUX 11.x, the 'ENOBUFS, No buffer space available' error occures because the accept() cannot complete. You will not see ENOBUFS at 10.20 because the kernel hides any occurrence from being returned from user space. ENOBUFS at 11.0 TCP/IP is quite possible, and could occur intermittently. As a work-around, we are going to ingnore ENOBUFS. Submitted by: madhusudan_mathihalli@hp.com Reviewed by: Bill Stoddard git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92894 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 0584ed86b70..dc88eac1add 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,8 @@ Changes with Apache 2.0.31-dev + *) HPUX 11.*: Do not kill the child process when accept() + returns ENOBUFS on HPUX 11.*. (ported from a 1.3 patch + by [madhusudan_mathihalli@hp.com]) + [Bill Stoddard] *) Fix a problem in the parsing of the directive. [Jeff Trawick] diff --git a/os/unix/unixd.c b/os/unix/unixd.c index e023c3864e9..f7061bdc078 100644 --- a/os/unix/unixd.c +++ b/os/unix/unixd.c @@ -485,6 +485,18 @@ AP_DECLARE(apr_status_t) unixd_accept(void **accepted, ap_listen_rec *lr, * to just exit in most cases. */ switch (status) { +#if defined(HPUX11) && defined(ENOBUFS) + /* On HPUX 11.x, the 'ENOBUFS, No buffer space available' + * error occures because the accept() cannot complete. + * You will not see ENOBUFS at 10.20 because the kernel + * hides any occurrence from being returned from user space. + * ENOBUFS at 11.0 TCP/IP is quite possible, and could + * occur intermittently. As a work-around, we are going to + * ingnore ENOBUFS. + */ + case ENOBUFS: +#endif + #ifdef EPROTO /* EPROTO on certain older kernels really means * ECONNABORTED, so we need to ignore it for them.