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