Apache2::SubProcess sucks

Tosh Cooey <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Organization Twelve Hundred Group LLC
Message-ID <[email protected]>
Seriously, you know what, the code below doesn't even work.

And if I get rid of the redirect and replace it with some nice pretty text:

print "Content-type: text/html\n\nTesting";

You know what?  The warning for 1 (from the 'for' loop) is printed and 
then it all stops, probably as the browser connection "closes".

Hiding it behind more forks made it work once but then never again.

So it is my belief that Apache2::SubProcess sucks dirty things, and that 
belief won't change until I see proof to the contrary.

On a related note, anyone have tips for avoiding zombies in CGI forking?

Tosh



Tosh Cooey wrote:
> Hi after much trial and all error I am seeing that the browser 
> connection closing is also stopping my subprocess.
> 
> The main ModPerl::Registry program looks like this:
> ### file.pl ###
> use Apache2::SubProcess ();
> use JSON();
> 
> &main(shift);
> 
> sub main {
>   my $r = shift;
>   ...
>   $r->spawn_proc_prog ('/web/html/file_fork.pl', \@argv);
>   return print $cgi->redirect('index.pl');
> }
> ###
> 
> And
> 
> ### file_fork.pl ###
> use JSON();
> use warnings;
> use POSIX 'setsid';
> chdir '/'                or die "Can't chdir to /: $!";
> open STDIN, '/dev/null'  or die "Can't read /dev/null: $!";
> open STDOUT, '+>>', '/tmp/debug.txt' or die "Can't write to 
> /tmp/debug.txt: $!";
> open STDERR, '>&STDOUT'  or die "Can't dup stdout: $!";
> setsid or die "Can't start a new session: $!";
> 
>   # run your code here or call exec to another program
> foreach my $num (1..10) {
>   warn $num;
>   sleep(1);
> }
> ###
> 
> When file.pl is executed it calls file_fork.pl and file_fork starts to 
> print 1, 2, 3 and then stops around 2 or 3 depending on how long my 
> browser is connected.
> 
> Are there any glaring errors that anyone sees?  It should work shouldn't 
> it, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 after 10 seconds...
> 
> Thank-you all!
> 
> Tosh
> 
> 

-- 
McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.