JDK-8166531 : sun/security/ssl/SocketCreation/SocketCreation.java fails intermittently
  • Type: Bug
  • Component: security-libs
  • Sub-Component: javax.net.ssl
  • Affected Version: 9,10
  • Priority: P4
  • Status: Closed
  • Resolution: Cannot Reproduce
  • Submitted: 2016-09-22
  • Updated: 2019-08-21
  • Resolved: 2019-08-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdResolved
Related Reports
Duplicate :  
Relates :  
Description
sun/security/ssl/SocketCreation/SocketCreation.java fails intermittently with SSLHandshakeException: 

----------System.out:(68/2071)----------
-------------------------------------
Server: Will call createServerSocket(int)
Server: Will accept on SSL server socket...
Client: Will call createSocket(String, int)
Server read: 24
Client read: 85

Server: Will call createServerSocket(int)
Server: Will accept on SSL server socket...
Client: Will call createSocket(InetAddress, int)
Server read: 24
Client read: 85

Server: Will call createServerSocket(int)
Server: Will accept on SSL server socket...
Client: Will call createSocket(String, int, InetAddress, int)
Server read: 24
Client read: 85

Server: Will call createServerSocket(int)
Server: Will accept on SSL server socket...
Client: Will call createSocket(InetAddress, int, InetAddress, int)
Server read: 24
Client read: 85

Server: Will call createServerSocket(int)
Server: Will accept on SSL server socket...
Client: Will call createSocket()
Client: Will connect to server on port 61110...
Server read: 24
Client read: 85

Server: Will call createServerSocket(int)
Server: Will accept on SSL server socket...
Client: Will connect to server on port 61112...
Client: Will layer SSL socket on top...
Server read: 24
Client read: 85

-------------------------------------
Server: Will call createServerSocket(int, int)
Server: Will accept on SSL server socket...
Client: Will call createSocket(String, int)
Server read: 24
Client read: 85

Server: Will call createServerSocket(int, int)
Server: Will accept on SSL server socket...
Client: Will call createSocket(InetAddress, int)
Server read: 24
Client read: 85

Server: Will call createServerSocket(int, int)
Server: Will accept on SSL server socket...
Client: Will call createSocket(String, int, InetAddress, int)
Server read: 24
Client read: 85

Server: Will call createServerSocket(int, int)
Server: Will accept on SSL server socket...
Client: Will call createSocket(InetAddress, int, InetAddress, int)
Server read: 24
Client read: 85

Server: Will call createServerSocket(int, int)
Server: Will accept on SSL server socket...
Client: Will call createSocket()
Client: Will connect to server on port 61122...
----------System.err:(26/1927)----------
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
	at sun.security.ssl.SSLSocketImpl.readRecord(java.base@9-internal/SSLSocketImpl.java:1053)
	at sun.security.ssl.SSLSocketImpl.readRecord(java.base@9-internal/SSLSocketImpl.java:968)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(java.base@9-internal/SSLSocketImpl.java:1395)
	at sun.security.ssl.SSLSocketImpl.writeRecord(java.base@9-internal/SSLSocketImpl.java:728)
	at sun.security.ssl.AppOutputStream.write(java.base@9-internal/AppOutputStream.java:67)
	at sun.security.ssl.AppOutputStream.write(java.base@9-internal/AppOutputStream.java:81)
	at SocketCreation.doClientSide(SocketCreation.java:296)
	at SocketCreation.startClient(SocketCreation.java:508)
	at SocketCreation.<init>(SocketCreation.java:440)
	at SocketCreation.main(SocketCreation.java:413)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-internal/Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-internal/NativeMethodAccessorImpl.java:62)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-internal/DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(java.base@9-internal/Method.java:535)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:110)
	at java.lang.Thread.run(java.base@9-internal/Thread.java:843)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
	at sun.security.ssl.SSLSocketInputRecord.decode(java.base@9-internal/SSLSocketInputRecord.java:156)
	at sun.security.ssl.SSLSocketImpl.readRecord(java.base@9-internal/SSLSocketImpl.java:1026)
	... 15 more
Comments
Don't see this failure in recent months, so just closed it.
21-08-2019

I don't think SSLSocketTemplate can be used here because some test cases are not supposed to use Socket.connect() method, and I wouldn't like to change the original test scenario.
16-12-2016

We figured out that suggested patch above is not going to help. Dropped.
16-12-2016

Code review: http://mail.openjdk.java.net/pipermail/security-dev/2016-December/015322.html
15-12-2016

This seems to be a test issue. It is not reproducible, and might be caused by other processes which might connect to SSL server. See for example http://mail.openjdk.java.net/pipermail/security-dev/2016-September/014856.html The approach which is implemented in SSLSocketSample.java can be applied to the test. Even if SocketCreation.java and ProxyAuthTest.java fails with similar reason, I would prefer to fix SocketCreation.java separately because it requires significant updates. I am re-opening this bug.
07-10-2016

I am closing this as duplicate of JDK-8166530 as two tests fails with similar reason.
22-09-2016