perlbal and very slowly generated, dynamic content
Chad Austin
chad at imvu.com
Wed Mar 7 01:43:04 UTC 2007
First: as of earlier today, I'd never touched Perl or Perlbal, and I'm
definitely not an expert at HTTP either. But I have a problem, and none
of the people I know who have written Perlbal plugins know what is
happening either. So maybe one of you on this list can help!
I have a PHP page that generates output very slowly, but steadily. It
can be simulated with something like:
<?php
set_time_limit(10 * 60); # 10 minutes
header('Content-type: text/plain');
for ($i = 0; $i < 60; $i++) {
echo "$i\n";
flush();
sleep(1);
}
Our backend web servers are running Apache, and Perlbal sits in front of
them.
When I run the page by hitting the apache instance directly, the page
runs to completion, so that's fine. The problem is not in PHP or
Apache. When I hit the page through Perlbal, it cuts off after 30
seconds, every time.
So, why would Perlbal close the connection after 30 seconds? I noticed,
in ClientHTTPBase.pm, this line:
# FIXME: let this be configurable?
sub max_idle_time { 30; }
But after looking around a bit more, that should only matter if the
connection has been idle, which it definitely hasn't, as I can watch the
content trickle down to my web browser. Also in ClientHTTPBase.pm, I
see "$self->{alive_time} = time;" inside of event_write, but I don't see
why that would stop being called.
Am I totally off base? Do you know what could cause the connection to
close prematurely?
--
Chad Austin
http://imvu.com/technology
More information about the perlbal
mailing list