Apache 2 high weirdness

D Uhlman plug-discuss@lists.plug.phoenix.az.us
Mon, 18 Nov 2002 16:36:07 -0700


I have apache 2 working in several production environments and am now 
ready to move it into production on a new bank of servers. The servers 
are unusual as they are virtualized by a product called virtuozzo, think 
usermode linux. Anyway apache 2 runs fine on the test servers I have set 
up but when moved to these environments exhibit some very stange behavior.

The environment is a updated, modified and hardened redhat 7.1/7.3 and 
the apache 2 packages I have tried are internal (50km version 2.0.43) 
and the redhat 8 2.0.40 compiled for the 7.3 environment. Both work fine 
in a test environment under kernel 2.4.2-2 or 2.4.9. The servers are 
running a virtuozzo provided 2.4.9 (I have no easy control over this) so 
really the only difference is in the kernel from test production 
systems. Here is where things get strange.

Apache installs and works fine through https (mod_ssl 2.0.40 or 2.0.43) 
or using php (4.2.3) to generate pages. However when it comes to serving 
regular static pages over http it fails. The nature of this failure is such:

cannot serve a static page over 255 bytes

The telnet log shows this behavior:

Escape character is '^]'.
GET /index5.html HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 18 Nov 2002 22:58:10 GMT
Server: Apache/2.0.40 (Red Hat Linux)
Last-Modified: Mon, 18 Nov 2002 07:48:15 GMT
ETag: "544064-940-66de0dc0"
Accept-Ranges: bytes
Content-Length: 2368
Connection: close
Content-Type: text/html
X-Pad: avoid browser bug

with a file under 255 bytes:

Escape character is '^]'.
GET /index.html HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 18 Nov 2002 23:01:13 GMT
Server: Apache/2.0.40 (Red Hat Linux)
Last-Modified: Mon, 18 Nov 2002 07:46:20 GMT
ETag: "544068-9b-60034b00"
Accept-Ranges: bytes
Content-Length: 155
Connection: close
Content-Type: text/html

<html>
<body>
This is test content. [other sentence redacted]
</body>
</html>
Connection closed by foreign host.

So the difference is the X-pad: avoid browser bug line ??
after exhaustive searching I haven't been able to find out much about 
that other than it is normal in some circumstances. Anyway apache feels 
the need to erroneously close the connection. This behavior also 
generates an error in the logs as follows

[info] (22)Invalid argument: core_output_filter: writing data to the network

This error would typically occur if the browser user were to hit the 
stop button, but that is not the case here.

It gets weirder, mozilla and internet explorer can get http pages over 
255 bytes if keepalives are set on, however gets for images are closed 
at 0 byte, with the above error. I can't for the life of me figure out 
what is going on, except to conclude it is realted to very subtle things 
in the kernel, the problem is that it would be a huge pain for me to 
change the kernel again or an apache bug. I am happy to try anything 
version/compile/package wise as I would really like to move these 
servers over to apache 2. I have reinstalled, recompiled, upgraded glibc 
(currently 2.2.4-31), upgrade the compiler I compiled apache with 
(currently gcc-2.96-112.7.1). Let me know if you have any leads.

I have pretty exhaustively search google, deja, apache mailng lists etc.
All i found was this deja link 
http://groups.google.com/groups?q=%22apache+2%22+%22avoid+browser+bug%22&hl=en&lr=&ie=UTF-8&oe=UTF-8&filter=0 
to an earlier bug with php and apache. That post leads me to believe 
this is an apache bug. But that illustrates the real weirdness here that 
php and anything over ssl work fine, it is just static html that has the 
problem.

Thanks for the help.

Sincerely,
David Uhlman
CTO 50km Inc.