Summary: | restart + piped logs stalls httpd for 24 minutes (Solaris) | ||
---|---|---|---|
Product: | Apache httpd-1.3 | Reporter: | Rainer Jung <rainer.jung> |
Component: | core | Assignee: | Apache HTTPD Bugs Mailing List <bugs> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | HEAD | ||
Target Milestone: | --- | ||
Hardware: | Sun | ||
OS: | Solaris |
Description
Rainer Jung
2006-03-15 20:31:41 UTC
Setting back to HEAD. I did not notice that the product had been set to "Apache httpd-1.3". I found a workaround, which is sufficient for us: I changed the SHELL_PATH in httpd.h from "/bin/sh" to "/usr/xpg4/bin/sh". That's a XPG4 compliant shell which exists on Solaris since Solaris 2.5, so about 10 years. The shell is similar to ksh (see "man ksh") and does *not* fork when called with "-c". As a consequence Solaris then behaves like Linux, only one process is being forked from the httpd for each piped logger and the signal handling is OK. Unfortunately I could not figure out how to pass a 'CFLAGS=-DSHELL_PATH="/usr/xpg4/bin/sh"' successfully to configure, because when I don't escape the '"', they get stripped of, and when I escape them, then mod_ssl configure complains :( I finally just hacked httpd.h before running make. It would be nice to at least document the behaviour: - restart in combination with piped logs is broken on any platform, where "/bin/sh -c" forks (e.g. Solaris) - if the platform has another shell, that does not fork, like /usr/xpg4/bin/sh or /bin/ksh, then defining SHELL_PATH to this shell will help. Apache HTTP Server 1.3.x is not supported anymore and no bugs will be fixed in the old codebase (cf. <http://mail-archives.apache.org/mod_mbox/httpd-announce/201002.mbox/%3C20100203000334.GA19021@infiltrator.stdlib.net%3E>). Since this bug seems to affect only 1.3.x, I'm closing it as WONTFIX. If this bug still affects you in a recent version (version 2.2.x or the upcoming version 2.4), please open a new bug. Thank you for reporting the bug. |