[users@httpd] Apache2 weird forks (owned by root)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

A strange problem occurs in our apache 2 installation. I have the prefork MPM where the expected (and documented) behavior is one root process open for managing the privileges ports (etc.) that spawns children, with the privileges of the User and Group directives specified (www-data in my case), in order to serve the requests.

Well, in our system what happens in that the children also have root privileges despite the User www-data option. But what is more strange is that this doesn't happen all the time. Sometimes the server starts with 3 children owned by www-data and the rest 2 (out of a MinSpareServers 5) are owned by root. The number varies between restarts from all owned by root to all owned by www-data. (Don't mention the security implications of the situation).

Processes owned by root are not serving pages (nor that I would want the root user to serve pages...), and that means the capabilities of the server are reduced. When all processes are owned by root, and a client opens a connection it hangs there indefinitely. When only 1 or 2 processes are owned by www-data the server is really slow, otherwise it behaves nicely under a moderate load.

Also issuing a reload (apache2ctl graceful) seems to zombie the child processes and only SIGKILL can make them rest in peace. The problem possibly lies in the forking section of apache 2. Killing the root- owned children spawns new, sometimes owned by root, sometimes owned by www-data. Killing enough root processes eventually allows us to have all processes owned by www-data!

Now that I explained the situation and the problem, details about the system follow:
Debian Sarge (3.1) up to date

Standard debian package for apache 2:
% apache2ctl -V:
Server version: Apache/2.0.54
Server built:   Sep  5 2005 11:15:09
Server's Module Magic Number: 20020903:9
Architecture:   32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec2"
-D DEFAULT_PIDLOG="/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

Using the prefork MPM as already mentioned.

Server signature and other modules:
Apache/2.0.54 (Debian GNU/Linux)
PHP/4.3.10-16
mod_ssl/2.0.54
OpenSSL/0.9.7e Server

The configuration is a mixed IP-Based (using ip aliasing) and Name- Based Virtual Hosting, with SSL enabled. Details (and full configuration) can be given as requested. The configuration is not the problem as the problem occurs even with no sites enabled. Also the server works as advertised, excluding the problem I mentioned.

The only "custom" thing on the server is the kernel which is Linux 2.4.30 (being a Dell server it wouldn't boot with a debian vanilla kernel). But I fail to see how the kernel can be a problem in this situation (since every other service works perfectly (and there are a lot)). It look like a race condition problem.

This on a SMP machine (Xeon @ 3.2Ghz, with 1GB ram), otherwise stable as a rock.

I already searched the archives and couldn't find anything similar.
Perhaps I should also post a bug report here (oneline):
http://bugs.debian.org/cgi-bin/pkgreport.cgi? \
which=pkg&data=apache2&archive=no&version=&dist=stable

but I don't know if this is debian specific or an apache 2 problem.

That's all I can think of. Has anybody seen something similar?
Any developer comments? How can I help you trace this (ugly) bug?

Thanks in advance for reading all this (*wow* thats big)!
-fot

PS. On a side-note, as a joke we started placing bets on how many www- data owned
processes there will be on the next apache 2 restart! :) :)

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
  "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx



[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux