The good news is that Mr. Mackenna got it! If I set KeepAlive Off in
apache2.conf then it all works fine. Below is a functioning long
process thingy which works with KeepAlive On and Firefox. I just hope
it works with MSIE ...
#!/usr/bin/perl
use strict;
use Apache2::Const -compile =
Would this problem be any different in a normal CGI context with the
program doing forks? I don't imagine it would be, which is why I see
the ultimate wisdom in spawning an external program to handle
long-running tasks, or just cron something.
Oh well, live and learn.
Tosh
William T
Just wanted to note that since you've put the CONN_CLOSE in the
redirect code, it's not necessary (nor desirable) to put
KeepAlive Off in apache2.conf
With the CONN_CLOSE call you turn KA off just when you need it to be
off.
So what's the bad news?
cmac
On Jan 27, 2010, at 5:08 AM,
So this works almost perfectly... Almost because:
#!/usr/bin/perl
use strict;
use Apache2::Const();# defines OK
use Apache2::Log();# defines warn
use Apache2::RequestUtil();# defines push_handlers
my $r = shift;
$r-push_handlers(PerlCleanupHandler = \cleanup );
Caveat Lector:
Long Cleanups done inline on the Apache children can cause problems.
If you get a situation where the CleanUp takes to long OR you get
enough traffic to the page(s) which engage the CleanUp then you will
encounter a tipping point, and soon after your website will be almost
The warning from William T. made me think to ask:
Does your site have KeepAlive On in httpd.conf?
(If not I can't think of anything to suggest...)
If so, try adding this as part of the redirect:
use Apache2::Connection();
use Apache2::RequestRec();
...
my $c = $r-connection();