Hi Chris,

>    It's a little unclear to me why you moved from ProcessThread to 
>   TestProcessThread + Process. An explanation of that would make it easier 
>   to understand many of the changes.

There are two reasons for that:
1)  For every network interface the test starts a separate thread that runs the 
test for this interface. We want that if the test fails
    due to the bind error the thread not to exit but try to repeat the test 
several times. jdk.test.lib.thread.ProcessThread doesn't allow this.
2) To filter out the cases when the test fails due to the bind error we need to 
parse the process output.  jdk.test.lib.thread.ProcessThread 
  registers its own pumps for stdin and sdtout  (by calling 
ProcessTools.startProcess()) that consume all output of the process and prevent 
  the output analyzer from collecting this output.
 
Thanks!
--Daniil

On 7/17/19, 12:11 PM, "Chris Plummer" <chris.plum...@oracle.com> wrote:

    Hi Daniil,
    
    It's a little unclear to me why you moved from ProcessThread to 
    TestProcessThread + Process. An explanation of that would make it easier 
    to understand many of the changes.
    
    thanks,
    
    Chris
    
    On 7/11/19 10:16 AM, Daniil Titov wrote:
    > Please review the change that fixes an intermittent failure of  
sun/management/jmxremote/bootstrap/JMXInterfaceBindingTest.java
    > test due to ports collision. The tests finds all network interfaces and 
for every interface starts a separate process that tests
    > the connection to JMX agent server for a specific ports/interface 
combination.
    >
    > The test was changed to retry in case of the failure. If the subprocess 
fails to bind and the number
    > of retry attempts doesn't exceed the limit a new pair of random ports is 
selected and the test is run again.
    >
    > Webrev: http://cr.openjdk.java.net/~dtitov/8221303/webrev.01/
    > Bug: https://bugs.openjdk.java.net/browse/JDK-8221303
    >
    > Thanks!
    > --Daniil
    >
    >
    
    


Reply via email to