apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Ames <grega...@remulak.net>
Subject Re: [PATCH] Re: cvs commit: apr/threadproc/unix proc.c
Date Thu, 18 Oct 2001 17:55:05 GMT
Jeff Trawick wrote:

> I'm happy with the APR-ized notion of how-did-the-process-exit and
> what-is-the-signal-or-exit-code but throwing away the native status is
> a real problem.

[...] 

> missing from patch:
> doc in header files, other mpms, apr/threadproc/foo, where foo !=
> unix, testing
> 
> Index: include/mpm_common.h

I put this patch on, and AFAICT Apache is back to normal with respect to
child exit status.

Prior to doing the make install, I captured doc on another really
annoying phenomenon.  Our httpd-std.conf contains "Group #-1".  This
does not work on my Linux box.  If I try to use it with the current
HEAD, we loop creating child processes which quickly exit with a fatal
error.  The parent doesn't realize it, and just keeps forking doomed
children forever. 

After applying Jeff's patch, the parent sees the fatal error and quickly
bails out.  Then I restarted the server with a good config and forced a
seg fault in mod_info's handler.  I see a log message, and the
scoreboard gets cleaned up properly.

I'm going to put this on daedalus and verify that it works there.  If
so, I plan to put this into production this evening when the load dies
down.  I'd like to see a more complete version of this patch or
something equivalent committed soon.

Greg

------------------------------------------------------------------------------------------------

results when using "Group #-1" on Linux, with httpd build from the
curent HEAD
 
Children are generating fatal errors which are not recognized by the
parent.
 
[gregames@gandalf /ap2.org]$ hps
27133     1 140 do_sel S pts/1    00:00:00 httpd
27276 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27277 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27278 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27279 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27280 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27281 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27282 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27283 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
[gregames@gandalf /ap2.org]$ hps
27133     1 140 do_sel S pts/1    00:00:00 httpd
27309 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
[gregames@gandalf /ap2.org]$ hps
27133     1 140 do_sel S pts/1    00:00:00 httpd
27337 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27338 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27339 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
27340 27133 044 do_exi Z pts/1    00:00:00 httpd <defunct>
[gregames@gandalf /ap2.org]$ hps
27133     1 140 do_sel S pts/1    00:00:00 httpd

[gregames@gandalf /ap2.org]$ tail logs/error_log
[Thu Oct 18 11:33:03 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 11:33:03 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 11:33:03 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 11:33:03 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 11:33:03 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 11:33:03 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 11:33:03 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 11:33:03 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 11:33:05 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295

this continues until you kill the parent.

applied Jeff's latest patch, tried the same config:

[Thu Oct 18 11:33:05 2001] [notice] caught SIGTERM, shutting down
[Thu Oct 18 12:23:56 2001] [notice] Apache/2.0.27-dev (Unix) configured
-- resuming normal operations
[Thu Oct 18 12:23:56 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 12:23:56 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 12:23:56 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 12:23:56 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 12:23:56 2001] [alert] (22)Invalid argument: setgid: unable
to set group id to Group 4294967295
[Thu Oct 18 12:23:57 2001] [alert] Child 29966 returned a Fatal error...
Apache is exiting!

hooray!

started the same build, with a config file containing a usable Group,
then forced a seg fault in mod_info's handler:

[Thu Oct 18 12:45:19 2001] [notice] child pid 673 exit signal
Segmentation fault (11)

yay!  

checked the scoreboard with server-status.  The slot where pid 673 would
have been contains a "." - open slot with no current process.

Mime
View raw message