summaryrefslogtreecommitdiffstats
path: root/httpd-2.4.3-r1387633+.patch
blob: b09b3388c0805c010f170fba9c78cdab54e9f541 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# ./pullrev.sh 1387633 1392850

http://svn.apache.org/viewvc?view=revision&revision=1387633
http://svn.apache.org/viewvc?view=revision&revision=1392850

--- httpd-2.4.3/server/mpm/prefork/prefork.c
+++ httpd-2.4.3/server/mpm/prefork/prefork.c
@@ -564,9 +564,16 @@
 
         status = apr_pollset_add(pollset, &pfd);
         if (status != APR_SUCCESS) {
-            ap_log_error(APLOG_MARK, APLOG_EMERG, status, ap_server_conf, APLOGNO(00157)
-                         "Couldn't add listener to pollset; check system or user limits");
-            clean_child_exit(APEXIT_CHILDSICK);
+            /* If the child processed a SIGWINCH before setting up the
+             * pollset, this error path is expected and harmless,
+             * since the listener fd was already closed; so don't
+             * pollute the logs in that case. */
+            if (!die_now) {
+                ap_log_error(APLOG_MARK, APLOG_EMERG, status, ap_server_conf, APLOGNO(00157)
+                             "Couldn't add listener to pollset; check system or user limits");
+                clean_child_exit(APEXIT_CHILDSICK);
+            }
+            clean_child_exit(0);
         }
 
         lr->accept_func = ap_unixd_accept;