STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
It's difficult to reproduce this problem in limited amount of time. If my understanding is correct, this problem happens only if TCP socket state was left in waiting state due to packet loss or checksum error at the exact moment when poll(3) returned false-positively.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
SocketInputStream.read() times out regardless of the load or network condition.
ACTUAL -
SocketInputStream.read() hangs for more than 1 hour very rarely.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
We don't get error message because the thread hangs.
When I get thread dump, it shows that a thread is hanged at SocketInputStream.socketRead0.
REPRODUCIBILITY :
This bug can be reproduced rarely.
CUSTOMER SUBMITTED WORKAROUND :
I couldn't find workaround. Because SocketInputStream.socketRead0 is a primitive JNI method, I couldn't find ways to read data from a socket without calling the method.
Read full article from [#JDK-8049846] SocketInputStream.socketRead0 hangs even with soTimeout under high load - Java Bug System
No comments:
Post a Comment