JDK-8170492 : javax/net/ssl/DTLS/RespondToRetransmit.java test fails intermittently
  • Type: Bug
  • Component: security-libs
  • Sub-Component: javax.net.ssl
  • Affected Version: 9
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2016-11-29
  • Updated: 2017-01-22
  • Resolved: 2016-12-07
Related Reports
Duplicate :  
Relates :  
Description
javax/net/ssl/DTLS/RespondToRetransmit.java test may fail sometimes with the following output:

java.lang.RuntimeException: Too much loops to produce handshake packets
	at DTLSOverDatagram.handshake(DTLSOverDatagram.java:154)
	at DTLSOverDatagram.doClientSide(DTLSOverDatagram.java:117)
	at DTLSOverDatagram$ClientCallable.call(DTLSOverDatagram.java:685)
	at DTLSOverDatagram$ClientCallable.call(DTLSOverDatagram.java:668)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1161)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:844)
Exception on client side: 
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Too much loops to produce handshake packets
	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
	at DTLSOverDatagram.runTest(DTLSOverDatagram.java:606)
	at RespondToRetransmit.main(RespondToRetransmit.java:89)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:538)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:110)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.RuntimeException: Too much loops to produce handshake packets
	at DTLSOverDatagram.handshake(DTLSOverDatagram.java:154)
	at DTLSOverDatagram.doClientSide(DTLSOverDatagram.java:117)
	at DTLSOverDatagram$ClientCallable.call(DTLSOverDatagram.java:685)
	at DTLSOverDatagram$ClientCallable.call(DTLSOverDatagram.java:668)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1161)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	... 1 more
Server: Warning: java.net.SocketTimeoutException: Receive timed out
Server: Reproduced 0 packets
Server: New handshake status is NEED_UNWRAP
Server: Handshake finished, status is NEED_UNWRAP
Server: Negotiated protocol is NONE
Server: Negotiated cipher suite is SSL_NULL_WITH_NULL_NULL
Exception in  ServerCallable.call():
java.lang.Exception: Unexpected handshake status NEED_UNWRAP
	at DTLSOverDatagram.handshake(DTLSOverDatagram.java:289)
	at DTLSOverDatagram.doServerSide(DTLSOverDatagram.java:98)
	at DTLSOverDatagram$ServerCallable.call(DTLSOverDatagram.java:647)
	at DTLSOverDatagram$ServerCallable.call(DTLSOverDatagram.java:630)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1161)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:844)
Exception on server side: 
java.util.concurrent.ExecutionException: java.lang.Exception: Unexpected handshake status NEED_UNWRAP
	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
	at DTLSOverDatagram.runTest(DTLSOverDatagram.java:616)
	at RespondToRetransmit.main(RespondToRetransmit.java:89)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:538)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:110)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.lang.Exception: Unexpected handshake status NEED_UNWRAP
	at DTLSOverDatagram.handshake(DTLSOverDatagram.java:289)
	at DTLSOverDatagram.doServerSide(DTLSOverDatagram.java:98)
	at DTLSOverDatagram$ServerCallable.call(DTLSOverDatagram.java:647)
	at DTLSOverDatagram$ServerCallable.call(DTLSOverDatagram.java:630)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1161)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	... 1 more
Comments
Closed as a dup of JDK-8169086
08-12-2016

I have tried to reproduce this failure locally on Linux x64 by running the test in a loop, but it didn't fail.
30-11-2016

At first glance, it is not clear if it is bug in test or DTLS implementation. We've already had issues with similar exceptions, see JDK-8161086 and JDK-8161086 which have been actually fixed in JDK-8167680. So, this needs more investigation.
29-11-2016

The test has been recently added for JDK-8167680. I am attaching a jtr file with full logs.
29-11-2016