On 06/10/2019 02:07, Andrew Leonard wrote:
Hi Alex,
Thanks for trying this out, it's possible this failure is an issue with
my testcase, as I repeat the 10 thread test loop 10 times and I have a
30 second timeout which potentially might overrun if a connection takes
time to terminate. I could avoid that simply by using different ports
for each run, equally it could also be an issue as pointed out by Alan.
The test uses fixed ports, so it can interfere with other processes.
You can use port "0" which automatically selects free port.
connector.startListening returns actual port assigned for the connection.
Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
internet email: andrew_m_leon...@uk.ibm.com
From: Alex Menkov <alexey.men...@oracle.com>
To: Andrew Leonard <andrew_m_leon...@uk.ibm.com>,
serviceability-dev@openjdk.java.net
Date: 07/06/2019 22:19
Subject: Re: RFR JDK-8225474: JDI connector accept fails "Address
already in use" with concurrent listeners
------------------------------------------------------------------------
Hi Andrew,
The fix looks good in general.
And I can be the sponsor.
I've tested the fix and got 1 test failure (of 400 runs) on Win-x64 and
the log looks the same.
java.lang.RuntimeException: Failed to accept connector connection
at JdwpConcurrentAttachTest.main(JdwpConcurrentAttachTest.java:74)
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:567)
at
com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:465)
at java.base/sun.nio.ch.Net.bind(Net.java:457)
at java.base/sun.nio.ch.NioSocketImpl.bind(NioSocketImpl.java:643)
at java.base/java.net.ServerSocket.bind(ServerSocket.java:359)
at java.base/java.net.ServerSocket.bind(ServerSocket.java:313)
at
jdk.jdi/com.sun.tools.jdi.SocketTransportService.startListening(SocketTransportService.java:300)
at
jdk.jdi/com.sun.tools.jdi.SocketTransportService.startListening(SocketTransportService.java:310)
at
jdk.jdi/com.sun.tools.jdi.GenericListeningConnector.startListening(GenericListeningConnector.java:117)
at
jdk.jdi/com.sun.tools.jdi.SocketListeningConnector.startListening(SocketListeningConnector.java:86)
at JdwpConcurrentAttachTest.attachTest(JdwpConcurrentAttachTest.java:111)
at JdwpConcurrentAttachTest.run(JdwpConcurrentAttachTest.java:93)
So looks like the fix doesn't fix the issue completely.
--alex
On 06/07/2019 07:24, Andrew Leonard wrote:
Hi,
Please can I request a sponsor and review of this patch for JDK-8225474.
A problem that we have seen intermittently with JDI connector stress
tests for quite a while that is caused by an non-thread safe HashMap in
the connector class. I've created a standalone testcase that reproduces
it reliably.
http://cr.openjdk.java.net/~aleonard/8225474/webrev.00
Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
internet email: andrew_m_leon...@uk.ibm.com
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU