Wacky IE Problem
Martin Atkins
mart at degeneration.co.uk
Wed Oct 19 04:57:53 PDT 2005
Hi folks,
I've been having a problem that I'm finding quite hard to debug. I have
Perlbal deployed at my office in a selector/reverse-proxy setup which
proxies back to a different host depending on the Host header. This has
been working fine for a couple of months now, but a few days ago we
encountered a very bizarre problem.
One of the servers behind the proxy is a demo of a project we're working
on. One of the pages it returns contains a large HTML table.
When making the request for this page in Internet Explorer through
Perlbal, IE recieves most of the response but then suddenly and
inexplicably switches to either a "Page cannot be displayed" or a "Page
has expired" error. Which error gets displayed seems to be random. Since
it happens part-way through the response, my first instinct was that it
was a client-side problem.
However, making that same request using IE on our LAN here directly to
the server does not show the same problem. Also, arranging for our
router to translate a port to the server directly and making a request
to that from outside the network using IE does not show the problem. We
have two servers running the application here and the problem occurs
regardless of which one Perlbal is pointing at. It seems that Perlbal is
at least a factor if not the direct cause.
I did some packet sniffing and noticed a load of RST packets being
generated as the requests end, and recalled a post Brad made in his
journal a while back about that issue. I hacked Perlbal::Socket to set
the SO_LINGER flag on the socket and that caused the torrent of RST to
go away but does not solve the problem. The packet sniff shows that the
data is transmitted in its entirety.
Just to make it all the more bizarre, the problem seems to occur
regardless of the size of the response, except in some cases where the
number of columns in our table is less than a certain number. If it
stays below that number of columns, it can return as many rows as it
likes (within reason) and work just fine. However, this might just be
random dumb luck since it works occasionally anyway.
I'm completely at a loss. This problem is so completely off-the-wall I
don't know where to start! Any ideas? :)
We're running Perlbal 1.37.
More information about the perlbal
mailing list