[frs-149] I’ve been using FR on a problem server, and the Crash Protection doesn’t seem to be very reliable. I have it set to kill any requests longer than 120 seconds, but most of the time it doesn’t!?


Take a look at the stack traces from the hanging threads, you will see that the threads are all hanging in the same place inside sending data down the socket to the web browser:

at java.net.SocketOutputStream.socketWrite0(Native Method)

It's not possible to kill a thread in Java that is in a Native method, the only way to stop the thread is to restart the Java runtime (i.e. restart ColdFusion), unfortunately this is a limitation of Java itself.

Typically it appears from the rest of the stack trace that the page has finished processing and is returning the remaining content to the client. Via FusionReactor a defect in Internet Explorer has been found.

Other FusionReactor users have reported the same problem and it has been discovered that Internet Explorer sometimes keeps connections open but does not read the data from the connection, even if you close the window or surf away to another page. This leads to the problem that Java can end up with stuck threads that never finish and cannot be killed because they are in native code.

Issue Details

Type: Technote
Issue Number: FRS-149
Components: Crash Protection
Environment:
Resolution: Fixed
Last Updated: 12/Jul/07 7:26 PM
Affects Version:
Fixed Version:
Server:
Platform:
Related Issues:

FRS-114: When I kill a process, it times out and remains in the list as “Killing”. Shouldn’t this kill it immediately?