Thanks Serguei, i'll add those changes to my new webrev I am working on 
based on Alan's suggestions. It should be ready once i've finished my 
stress tests later today.
Cheers
Andrew

Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
internet email: andrew_m_leon...@uk.ibm.com 




From:   "serguei.spit...@oracle.com" <serguei.spit...@oracle.com>
To:     Andrew Leonard <andrew_m_leon...@uk.ibm.com>, Alex Menkov 
<alexey.men...@oracle.com>
Cc:     serviceability-dev@openjdk.java.net
Date:   12/06/2019 20:52
Subject:        Re: RFR JDK-8225474: JDI connector accept fails "Address 
already in use" with concurrent listeners



Hi Andrew,

It looks good.

Minor comments on the test.

There are several places where white spaces are missed around the signs: 
'=', '<', '+', ',':

  58         for(int j=0; j<10; j++) {
  62             int numThreads=10;
  66             for(int i=0; i<numThreads; i++) {
  67                 JdwpConcurrentAttachTest test = new 
JdwpConcurrentAttachTest(localAddresses[0].getHostAddress(),0);
  78 
  79     static  boolean   failure=false;
  80     static  Exception failureException=null;

 112         log("Listening address = "+actualAddress);

 123                     failureException=e;

 132                                 +",address="+ actualAddress




On 6/11/19 12:36, Andrew Leonard wrote:
Thanks Alex, 
I have changed the testcase to allocate ports which makes better sense: 
http://cr.openjdk.java.net/~aleonard/8225474/webrev.02/ 
Cheers 
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> 
Cc:        serviceability-dev@openjdk.java.net 
Date:        10/06/2019 20:43 
Subject:        Re: RFR JDK-8225474: JDI connector accept fails "Address 
already in use" with concurrent listeners 





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




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

Reply via email to