[Pkg-apache-commits] r863 - in /branches/lenny-apache2: README.Debian changelog patches/00list patches/067_check_pollset_create_error.dpatch

sf at alioth.debian.org sf at alioth.debian.org
Fri Jan 9 20:17:45 UTC 2009


Author: sf
Date: Fri Jan  9 20:17:44 2009
New Revision: 863

URL: http://svn.debian.org/wsvn/pkg-apache/?sc=1&rev=863
Log:
fix segfault when hitting the new epoll limit, and add some hint to README.Debian

Added:
    branches/lenny-apache2/patches/067_check_pollset_create_error.dpatch
Modified:
    branches/lenny-apache2/README.Debian
    branches/lenny-apache2/changelog
    branches/lenny-apache2/patches/00list

Modified: branches/lenny-apache2/README.Debian
URL: http://svn.debian.org/wsvn/pkg-apache/branches/lenny-apache2/README.Debian?rev=863&op=diff
==============================================================================
--- branches/lenny-apache2/README.Debian (original)
+++ branches/lenny-apache2/README.Debian Fri Jan  9 20:17:44 2009
@@ -291,3 +291,16 @@
 
 to your Apache configuration. Of course, this has to be ajusted to the actual
 filenames you use.
+
+6) Message "Couldn't create pollset in child" in error log
+
+On kernels since 2.6.27.8, the value in 
+
+	/proc/sys/fs/epoll/max_user_instances
+
+needs to be larger than the value configured for MaxClients. It can be set
+on boot by adding a line like
+
+	fs.epoll.max_user_instances=1024
+
+to /etc/sysctl.conf.

Modified: branches/lenny-apache2/changelog
URL: http://svn.debian.org/wsvn/pkg-apache/branches/lenny-apache2/changelog?rev=863&op=diff
==============================================================================
--- branches/lenny-apache2/changelog (original)
+++ branches/lenny-apache2/changelog Fri Jan  9 20:17:44 2009
@@ -1,3 +1,12 @@
+apache2 (2.2.9-10+lenny2) UNRELEASED; urgency=low
+
+  * Report an error instead instead of segfaulting when apr_pollset_create
+    fails (PR 46467). On Linux kernels since 2.6.27.8, the value in
+    /proc/sys/fs/epoll/max_user_instances needs to be larger than the
+    value of MaxClients in the Apache configuration.
+
+ -- Stefan Fritsch <sf at debian.org>  Fri, 09 Jan 2009 21:06:45 +0100
+
 apache2 (2.2.9-10+lenny1) testing-proposed-updates; urgency=low
 
   * Regression fix from upstream svn for mod_proxy:

Modified: branches/lenny-apache2/patches/00list
URL: http://svn.debian.org/wsvn/pkg-apache/branches/lenny-apache2/patches/00list?rev=863&op=diff
==============================================================================
--- branches/lenny-apache2/patches/00list (original)
+++ branches/lenny-apache2/patches/00list Fri Jan  9 20:17:44 2009
@@ -25,6 +25,7 @@
 064_mod_proxy_http_timeout.dpatch
 065_mod_proxy_segfault_PR45792.dpatch
 066_mpm_worker_segfault_PR45605.dpatch
+067_check_pollset_create_error.dpatch
 099_config_guess_sub_update
 200_cp_suexec.dpatch
 201_build_suexec-custom.dpatch

Added: branches/lenny-apache2/patches/067_check_pollset_create_error.dpatch
URL: http://svn.debian.org/wsvn/pkg-apache/branches/lenny-apache2/patches/067_check_pollset_create_error.dpatch?rev=863&op=file
==============================================================================
--- branches/lenny-apache2/patches/067_check_pollset_create_error.dpatch (added)
+++ branches/lenny-apache2/patches/067_check_pollset_create_error.dpatch Fri Jan  9 20:17:44 2009
@@ -1,0 +1,21 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP:see http://svn.apache.org/viewvc?view=rev&revision=732414
+--- a/server/mpm/prefork/prefork.c	2009/01/07 18:21:23	732413
++++ b/server/mpm/prefork/prefork.c	2009/01/07 18:22:07	732414
+@@ -484,8 +484,12 @@
+     (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 };




More information about the Pkg-apache-commits mailing list