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: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ca30c4d622c9006f2466e447a517fdfaeee90e87;p=apache 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 0584ed86b7..dc88eac1ad 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 e023c3864e..f7061bdc07 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.