crash on Perlbal 1.51
Kevin Rosenberg
kevin at rosenberg.net
Wed Nov 29 15:22:50 UTC 2006
Del Raco wrote:
> Has anyone seen the following error on Perlbal 1.51?
> Nov 28 03:10:37 app-200 perlbal[16356]: crash log:
> Can't call method "req_keep_alive" on an undefined
> value at
> /usr/local/share/perl/5.8.7/Perlbal/ClientHTTPBase.pm
> line 124.
Yes.
> Any help would be appreciated. Thanks.
I quickly hacked a workaround, but I don't understand the true cause of
the error:
Index: lib/Perlbal/ClientHTTPBase.pm
===================================================================
--- lib/Perlbal/ClientHTTPBase.pm (revision 608)
+++ lib/Perlbal/ClientHTTPBase.pm (working copy)
@@ -121,7 +121,7 @@
print " service's persist_client = $persist_client\n" if
Perlbal::DEBUG >= 3;
# do keep alive if they sent content-length or it's a head
request
- my $do_keepalive = $persist_client && $rqhd->req_keep_alive($reshd);
+ my $do_keepalive = $persist_client && $rqhd && $rqhd->req_keep_alive($reshd);
if ($do_keepalive) {
print " doing keep-alive to client\n" if Perlbal::DEBUG >=
3;
my $timeout = $self->max_idle_time;
Index: lib/Perlbal/BackendHTTP.pm
===================================================================
--- lib/Perlbal/BackendHTTP.pm (revision 608)
+++ lib/Perlbal/BackendHTTP.pm (working copy)
@@ -483,6 +483,9 @@
return $self->handle_response;
}
+ # KMR
+ return if ref $client eq "Perlbal::ClientHTTPBase";
+
# if our client's behind more than the max limit, stop buffering
if ($client->too_far_behind_backend) {
$self->watch_read(0);
More information about the perlbal
mailing list