You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2003/12/11 20:05:30 UTC

cvs commit: httpd-2.0/server mpm_common.c

trawick     2003/12/11 11:05:30

  Modified:    server   mpm_common.c
  Log:
  fix a problem where a crash of a non-MPM child process could
  result in an error log message stating that the parent had
  crashed
  
  the problem, which affected all *X platforms, was due to an
  attempt to support the general problem with linuxthreads;
  this change leaves us with a relatively obscure hole when
  running on linuxthreads (see comments)
  
  Revision  Changes    Path
  1.111     +8 -1      httpd-2.0/server/mpm_common.c
  
  Index: mpm_common.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm_common.c,v
  retrieving revision 1.110
  retrieving revision 1.111
  diff -u -r1.110 -r1.111
  --- mpm_common.c	26 Nov 2003 03:45:34 -0000	1.110
  +++ mpm_common.c	11 Dec 2003 19:05:30 -0000	1.111
  @@ -948,7 +948,14 @@
   #if AP_ENABLE_EXCEPTION_HOOK
       run_fatal_exception_hook(sig);
   #endif
  -    if (my_pid == parent_pid) {
  +    /* linuxthreads issue calling getpid() here:
  +     *   This comparison won't match if the crashing thread is
  +     *   some module's thread that runs in the parent process.
  +     *   The fallout, which is limited to linuxthreads:
  +     *   The special log message won't be written when such a
  +     *   thread in the parent causes the parent to crash.
  +     */
  +    if (getpid() == parent_pid) {
           ap_log_error(APLOG_MARK, APLOG_NOTICE,
                        0, ap_server_conf,
                        "seg fault or similar nasty error detected "