-
Bug
-
Resolution: Fixed
-
P3
-
6
-
b65
-
x86
-
windows_xp
J2SE Version (please include all output from java -version flag):
java version "1.6.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-beta-b59)
Java HotSpot(TM) Client VM (build 1.6.0-beta-b59, mixed mode, sharing)
Does this problem occur on J2SE 1.4.x or 5.0.x ? Yes / No (pick one)
Not sure - if pressed I could try and reproduce on an earlier version.
Operating System Configuration Information (be specific):
Windows XP SP2
Hardware Configuration Information (be specific):
1GB memory:
processor: Intel Pentium 4 2.54GHz (not hyper-threaded)
Bug Description:
Everything has been running fine in my test environment. Yesterday I
installed a Linksys WA354G router and now I keep getting an application
lockup with 100% CPU utilisation. Our Azureus users have occassionally
reported such problems (100% CPU use that is) and we've never been able
to track it down. Recently (with JDK 1.5 help I added a monitor thread
that measures thread CPU times to spot which thread is looping to cause the 100%
problem. This has revealed the thread to be:
[7:34:56] Thread state: elapsed = 10000, cpu = 14751, max = Keep-Alive-SocketCleaner (14735/147%)
[7:34:56] java.io.BufferedInputStream.fill(Unknown Source),
java.io.BufferedInputStream.skip(Unknown Source),
sun.net.www.MeteredStream.skip(Unknown Source),
sun.net.www.http.KeepAliveStreamCleaner.run(Unknown Source),
java.lang.Thread.run(Unknown Source)
[7:35:06] Thread state: elapsed = 10000, cpu = 9936, max =
Keep-Alive-SocketCleaner (9921/99%)
[7:35:12] java.io.BufferedInputStream.fill(Unknown Source),
java.io.BufferedInputStream.skip(Unknown Source),
sun.net.www.MeteredStream.skip(Unknown Source),
sun.net.www.http.KeepAliveStreamCleaner.run(Unknown Source),
java.lang.Thread.run(Unknown Source)
Looking at the code it appears you are trying to skip a number of bytes:
while (n < remainingToRead) {
remainingToRead = remainingToRead - n;
n = kas.skip(remainingToRead);
}
and that for whatever reason the "skip" method is returning less than
expected. As this has only happened since I installed the new router, and we
use http to configure the UPnP aspects of the router, I guess this is
something specific to do with the linksys router's behaviour regarding
keep-alive stuff.
java version "1.6.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-beta-b59)
Java HotSpot(TM) Client VM (build 1.6.0-beta-b59, mixed mode, sharing)
Does this problem occur on J2SE 1.4.x or 5.0.x ? Yes / No (pick one)
Not sure - if pressed I could try and reproduce on an earlier version.
Operating System Configuration Information (be specific):
Windows XP SP2
Hardware Configuration Information (be specific):
1GB memory:
processor: Intel Pentium 4 2.54GHz (not hyper-threaded)
Bug Description:
Everything has been running fine in my test environment. Yesterday I
installed a Linksys WA354G router and now I keep getting an application
lockup with 100% CPU utilisation. Our Azureus users have occassionally
reported such problems (100% CPU use that is) and we've never been able
to track it down. Recently (with JDK 1.5 help I added a monitor thread
that measures thread CPU times to spot which thread is looping to cause the 100%
problem. This has revealed the thread to be:
[7:34:56] Thread state: elapsed = 10000, cpu = 14751, max = Keep-Alive-SocketCleaner (14735/147%)
[7:34:56] java.io.BufferedInputStream.fill(Unknown Source),
java.io.BufferedInputStream.skip(Unknown Source),
sun.net.www.MeteredStream.skip(Unknown Source),
sun.net.www.http.KeepAliveStreamCleaner.run(Unknown Source),
java.lang.Thread.run(Unknown Source)
[7:35:06] Thread state: elapsed = 10000, cpu = 9936, max =
Keep-Alive-SocketCleaner (9921/99%)
[7:35:12] java.io.BufferedInputStream.fill(Unknown Source),
java.io.BufferedInputStream.skip(Unknown Source),
sun.net.www.MeteredStream.skip(Unknown Source),
sun.net.www.http.KeepAliveStreamCleaner.run(Unknown Source),
java.lang.Thread.run(Unknown Source)
Looking at the code it appears you are trying to skip a number of bytes:
while (n < remainingToRead) {
remainingToRead = remainingToRead - n;
n = kas.skip(remainingToRead);
}
and that for whatever reason the "skip" method is returning less than
expected. As this has only happened since I installed the new router, and we
use http to configure the UPnP aspects of the router, I guess this is
something specific to do with the linksys router's behaviour regarding
keep-alive stuff.