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