]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge r732414 from trunk:
authorRuediger Pluem <rpluem@apache.org>
Mon, 12 Jan 2009 11:37:32 +0000 (11:37 +0000)
committerRuediger Pluem <rpluem@apache.org>
Mon, 12 Jan 2009 11:37:32 +0000 (11:37 +0000)
As jorton discovered, recent Linux kernels have a new tunable
setting for epoll that will trip up many prefork users.  Write
a log message instead of crashing.

As rpluem notes, some Apache doc is in order.

PR: 46467
Submitted by: trawick
Reviewed by: rpluem, covener, trawick

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@733698 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
server/mpm/prefork/prefork.c

diff --git a/CHANGES b/CHANGES
index f28a4ecd593f72bac252e897a2169709391cdbb0..5d9f559041d3bb201b439a7cd60dee01036284a4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.12
 
+  *) prefork: Log an error instead of segfaulting when child startup fails
+     due to pollset creation failures.  PR 46467.  [Jeff Trawick]
+
   *) mod_ext_filter: fix error handling when the filter prog fails to start,
      and introduce an onfail configuration option to abort the request
      or to remove the broken filter and continue.
diff --git a/STATUS b/STATUS
index 29da26ab48ceb46b3a77670b79e1de2f50f704ce..04148db022f9ff157b0db43cc72a28bdfc1a4221 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -86,14 +86,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
- * Prefork MPM: Log an error instead of segfaulting when child startup fails
-   due to pollset creation failures.  PR 46467.
-   Trunk version of patch:
-      http://svn.apache.org/viewvc?rev=732414&view=rev
-   Backport version for 2.2.x of patch:
-      Trunk version of patch works
-   +1: rpluem, covener, trawick
-
  * mod_authnz_ldap: Reduce number of initialization debug messages and make
    information more clear. PR 46342
     Trunk version of path:
index 3849c222485d7ef65d83efa0dd787f58ef2f5af2..ce56dc5c773d6aeb6b56523554069bcbdc9b49fa 100644 (file)
@@ -517,8 +517,12 @@ static void child_main(int child_num_arg)
     (void) ap_update_child_status(sbh, SERVER_READY, (request_rec *) NULL);
 
     /* Set up the pollfd array */
-    /* ### check the status */
-    (void) apr_pollset_create(&pollset, num_listensocks, pchild, 0);
+    status = apr_pollset_create(&pollset, num_listensocks, pchild, 0);
+    if (status != APR_SUCCESS) {
+        ap_log_error(APLOG_MARK, APLOG_EMERG, status, ap_server_conf,
+                     "Couldn't create pollset in child; check system or user limits");
+        clean_child_exit(APEXIT_CHILDSICK); /* assume temporary resource issue */
+    }
 
     for (lr = ap_listeners, i = num_listensocks; i--; lr = lr->next) {
         apr_pollfd_t pfd = { 0 };