Our System: SuSE Linux 10.3 gcc (GCC) 4.2.1 (SUSE Linux), libc-2.6.1.so How Apache was built, configured: CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CXXFLAGS="${CFLAGS}" ./configure "--prefix=/opt/apache/2.2.10" --datadir=/media/iscsi/virtualweb --enable-layout=wochenblatt --with-mpm=prefork --enable-modules="so log_config dir mime" --enable-mods-shared="info status alias cern_meta usertrack asis include autoindex cgid imap deflate auth auth_anon auth_digest access cache mem_cache file-cache cgi env filter ext_filter expires headers file_cache mime_magic negotiation rewrite speling actions userdir setenvif authn-default authz-user authz-default" --enable-static-support --enable-nonportable-atomics --disable-ipv6 --enable-exception-hook --with-pic --with-included-apr Additional we installed the module libphp4 (PHP 4.4.9). apachectl -M Loaded Modules: core_module (static) authn_file_module (static) authz_host_module (static) authz_groupfile_module (static) auth_basic_module (static) log_config_module (static) mpm_prefork_module (static) http_module (static) mime_module (static) dir_module (static) so_module (static) expires_module (shared) headers_module (shared) alias_module (shared) cgi_module (shared) info_module (shared) status_module (shared) whatkilledus_module (shared) backtrace_module (shared) php4_module (shared) cat /var/log/apache2/error_log shows: httpd-prefork: tpp.c:63: __pthread_tpp_change_priority: Assertion `new_prio == -1 || (new_prio >= __sched_fifo_min_prio && new_prio <= __sched_fifo_max_prio)' failed. [Tue Nov 11 11:17:25 2008] [notice] child pid 31832 exit signal Segmentation fault (11) cat /etc/apache2/extra/httpd-mpm.conf shows our settings: <IfModule mpm_prefork_module> StartServers 8 MinSpareServers 16 MaxSpareServers 32 ServerLimit 256 MaxClients 196 MaxRequestsPerChild 10000 GracefulShutdownTimeout 5 </IfModule> cat /etc/apache2/extra/httpd-default.conf shows our settings: Timeout 120 KeepAlive On MaxKeepAliveRequests 50 KeepAliveTimeout 3 HostnameLookups Off Maybe someone can explain, why we get continuously Segmentation faults on Linux SuSE 10.3? Best regards, Alexander Manhart
tpp.c does not belong to the source code of httpd. So this error messages comes from a 3rd party module. Furthermore I am pretty sure that the 3rd party requires a stack trace for analysis.
The file tpp.c is part of the NPTL thread library: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nptl/tpp.c?annotate=1.1.2.2&cvsroot=glibc There are also other reports about this assertion failure for different application software. But http://sourceware.org/bugzilla/show_bug.cgi?id=3610 at least indicates, that it could be an improper mutex handling.
How can I detect, which module causes this error? Or rather which module uses mutex handling? (Is it possible, that a module like APC, mysql within PHP writes to error_log from Apache?)
You will need to produce a core dump. Such a core dump can then be inspected with gdb, which can give a stack trace with "bt" or "bt full". You can learn more about cores with "man core". If you httpd does not switch user and/or group via "User" or "Group", then it should automatically produce a core, when the assertin comes up, if you need to change User or Group (e.g. when using privileged ports), you can try to set CoreDumpDirectory in your httpd configuration and see, whether that produces a core. You might also need to change your max core sizes using "ulimit".
I read about it, but never used gdb. I'll try it ;-), thank you very much for the tips!