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
-*- 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.
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:
(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 };