APAR status
Closed as program error.
Error description
Error Message, as reported by customer: Some threads become parked indefinitely while performing a self-initiated close after receiving the SSLException "close_notify message cannot be sent". Each hang involves 2 threads, a ReentrantLock and synchronization on a SSLSocketImpl instance. One thread is always parked awaiting a ReentrantLock and the other thread is always blocked in a SSLSocketImpl.isClosed() call awaiting the SSLSocketImpl instance lock held by the parked thread. Stack Trace, if applicable: N/A Other Error Information, as reported by customer: N/A
Local fix
N/A
Problem summary
Deadlock in JSSE SSLSocketImpl when performing a self-initiated close ERROR DESCRIPTION: Some threads become parked indefinitely while performing a self-initiated close after receiving the SSLException "close_notify message cannot be sent". Each hang involves 2 threads, a ReentrantLock and synchronization on a SSLSocketImpl instance. One thread is always parked awaiting a ReentrantLock and the other thread is always blocked in a SSLSocketImpl.isClosed() call awaiting the SSLSocketImpl instance lock held by the parked thread.
Problem conclusion
The fix is to change the connectionState to volatile so that there is no need to call a synchronized method to get the connection state to resolve the deadlock. The associated RTC PR is 94824 The associated Austin CMVC defect is 116768 The associated Hursley CMVC defect is 202840 The associated APAR is IV74341 JVMs affected : Java 5.0, Java 6.0, Java 6.1, Java 7.0 and Java 7.1 The fix was delivered for Java 5.0 SR16 FP14, Java 6.0 SR16 FP15, Java 6.1 SR8 FP15, Java 7.0 SR9 FP20 and Java 7.1 SR3 FP20 The affected jar is "ibmjsseprovider2.jar". The build level of this jar for the affected releases is "20150709"
Temporary fix
Comments
APAR Information
APAR number
IV74341
Reported component name
JAVA SECURE SOC
Reported component ID
TIVSECJSS
Reported release
100
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-06-18
Closed date
2015-07-28
Last modified date
2015-07-28
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
JAVA SECURE SOC
Fixed component ID
TIVSECJSS
Applicable component levels
R100 PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCZL3Z","label":"JSSE"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"100","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
28 July 2015