Hello,
I think we have stumbled upon a bug in the ConnectionValidator.
Scenario
pingPeriod is set to 10 seconds and pingTimeout is set to 70 seconds, client
leasetime is 70 seconds. Using 2.2 SP11 on JDK 1.6 (Linux)
Ctrl-z the server for more than 20 seconds but less than 70 seconds. When the
server is brought back to the foreground, the client's connection is closed
even though the pingTimeout has not been exceeded.
Given that the task took more than 10 seconds to complete (Server in the BG),
the java Timer will immediately call the run method again with a very small
window in which the WaitOnConnectionCheckTimerTask is still running (Waiting on
a lock). By the time WaitOnConnectionCheckTimerTask breaks out of its wait, it
reads an isValid that is set to false by the run method causing the connection
to close.
I have a fix (Not sure if it optimal) that does the following:
- Make the tt (WaitOnConnectionCheckTimerTask) a class member (Must be
volatile).
- Add while(tt != null) {}
tt = new WaitOnConnectionCheckTimerTask();
to the run method.
Clear tt at the when WaitOnConnectionCheckTimerTask is done.
I can reproduce this on my machine every time. Thanks.
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4213894#4213894
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4213894
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user