Perlbal reproxied downloads stalling

Sam G ceptorial at
Fri Sep 22 05:51:27 UTC 2006

Hey guys,

Welp, turns out it wasn't perlbal at all. It was a Cisco routing table  
issue; we have client requests coming into our Cisco IOS SLB, which go to  
perlbal, then to a backend apache, then back out the same route... or so  
we thought. Turns out that the Cisco switch, instead of routing outgoing  
requests from perlbal back through the SLB to the client, routed them  
through the switch, but not through the SLB. (Incoming requests went  
through the SLB.) So during long downloads, the SLB thought the connection  
was idle, and just closed them, resulting in the stalled downloads.

We discovered it was Cisco by attempting to access the perlbal w/o the SLB  
and having it work, and figured it was the routing table by observing that  
increasing the IOS SLB delay setting (which keeps the connection open even  
if there is no activity in case of lost packets) increased the time that  
downloads would work.

Anyways, sorry to clog everyone's inbox on the list w/ all the debug  
output :) But thanks very much Brad for your vigilance in trying to tackle  
this problem.


On Fri, 15 Sep 2006 12:13:44 -0700, Brad Fitzpatrick <brad at>  

> On Thu, 14 Sep 2006, Sam G wrote:
>> Here is what I have changed it to:
>> sub as_string {
>>      my Perlbal::ClientProxy $self = shift;
>>      my $ret = $self->SUPER::as_string;
>>      if ($self->{backend}) {
>>          my $ipport = $self->{backend}->{ipport};
>>          $ret .= "; backend=$ipport";
>>      }
>>      $ret .= "; write_buf_size=$self->{write_buf_size}"
>>          if $self->{write_buf_size} > 0;
>>      $ret .= "; stalled=$self->{backend_stalled}";
>>      $ret .= "; highpri" if $self->{high_priority};
>>      $ret .= "; lowpri" if $self->{low_priority};
>>      ...
> Can I get the output of 'socks' again when it's stalled, now that you've
> done that change?
> I'm thoroughly confused.  BTW, I'd ignore the "make test" failing for
> now.... I think that's a red herring, but I'll figure it out more on
> Monday, giving you a test that's more robust to port numbers being in
> use on your machine.
> - Brad

Using Opera's revolutionary e-mail client:

More information about the perlbal mailing list