daniel.daugherty@Eng 1999-08-27
The HttpVersionTest test application fails in less than one minute on
WinNT 4.0 with JDK-Kestrel Build D. I ran the same test for an hour on
Win98 and on Solaris 2.6 without a problem. There appears to be some
sort of resource leak on WinNT that does not happen on the other
platforms.
I modified the HttpRequestDriver to keep statistics about the number of
connect() calls made during the test run. On a freshly rebooted 400 MhZ
Pentium II with 64MB of memory, the stats are:
WinNT% java HttpVersionTest -l 1m 1.1 owjones
connTotalCount=8608
connFailCount=1164
connPassCount=7444
connFirstFail=3978
FINALSTATUS:HttpVersionTest:EXIT_ERROR:2:Number of ERRORS:2328:TEST INCOMPLETE
There appears to be some resource reclaiming going on because the first
failure occurs on the 3978'th call to connect(), but after that point,
only 25% of the calls fail.
On a freshly rebooted 400 MhZ Pentium II with 64MB of memory with the
-Xint option, the stats are:
WinNT% java -Xint HttpVersionTest -l 1m 1.1 owjones
connTotalCount=6912
connFailCount=735
connPassCount=6177
connFirstFail=3978
FINALSTATUS:HttpVersionTest:EXIT_ERROR:2:Number of ERRORS:1470:TEST INCOMPLETE
Running the client on my Solaris 2.6 machine (same machine on which the
server is running):
S2.6% java HttpVersionTest -l 1m 1.1 owjones
connTotalCount=4768
connFailCount=0
connPassCount=4768
connFirstFail=-1
FINALSTATUS:HttpVersionTest:EXIT_PASS:0:TEST PASSED
Running the client on my Win98 machine (450 MhZ Pentium III with 64 MB
of memory):
Win98% java HttpVersionTest -l 1m 1.1 owjones
connTotalCount=8192
connFailCount=0
connPassCount=8192
connFirstFail=-1
FINALSTATUS:HttpVersionTest:EXIT_PASS:0:TEST PASSED
This failure happens with most of the new HTTP tests when they are run
for 1 minute instead of 1 iteration on WinNT. The ability to run for a
specific amount of time is a recent addition to this part of the
java.net test suite which is why this problem was not seen before.
I have attached a compressed tar archive of files that can be used to
reproduce the problem:
WinNT logs:
client-int.log // -Xint option specified
client-mixed.log // default mixed mode
Server application files:
HttpEcho.class
HttpEcho.java
HttpEchoConstants.class
HttpEchoConstants.java
Client application files:
HttpRequestDriver.class
HttpRequestDriver.java
HttpVersionTest.class
HttpVersionTest.java
Helper classes:
ParseOptions.class // command line option parser
ParseTestOptions.class // test application option parser
TestDriver.class // TestDriver
TestDriverConstants.class // TestDriver constants
On the server machine:
S2.6% java HttpEcho -l 0 // loops forever
On the client machine:
//
// loops for 1 minute, testing for HTTP protocol version 1.1 with
// the server owjones
//
WinNT% java HttpVersionTest -l 1m 1.1 owjones