jmx-dev 8221303: sun/management/jmxremote/bootstrap/JMXInterfaceBindingTest.java fails due to java.rmi.server.ExportException: Port already in use

Alex Menkov alexey.menkov at oracle.com
Wed Jul 17 20:30:31 UTC 2019


Hi Daniil,

The fix looks good in general.
Couple cosmetic notes (no new webrev required):

  162                 needRetry = runTest();
  163             }
  164             while (needRetry && (attempts++ < MAX_RETRY_ATTEMTS));
Please move "while" to the prev line:
  163             } while (needRetry && (attempts++ < MAX_RETRY_ATTEMTS));


  242                     System.out.println("Test FAILURE on" + name + 
" reason: The expected line \"" + READY_MSG
  243                             + "\" is not present in the process 
output");
Please add space: "Test FAILURE on " + name

--alex

On 07/17/2019 12:46, Daniil Titov wrote:
> 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.plummer at 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
>      >
>      >
>      
>      
> 
> 


More information about the serviceability-dev mailing list