Hi Roger,
Thank you for reviewing. Modified as you suggested, and pushed.
Thank you
-Hamlin
On 2016/11/19 0:28, Roger Riggs wrote:
Hi Hamlin,
RMID.java:
- import of LocalTime would lexically follow jva.rmi
- 53-54 typos: "ajust" -> "adjust"; "togeter" -> "together"
RMIDSelectorProvider.java:
- 121, 125 I would have just used System.out.printf directly without
introducing a trivial function.
Looks fine, Roger
Roger
On 11/17/2016 1:46 AM, Hamlin Li wrote:
Hi Chris, Joe, Roger,
Thank you for reviewing. Please check the comments inline.
new webrev: http://cr.openjdk.java.net/~mli/8168975/webrev.01/
Thank you
-Hamlin
On 2016/11/17 2:30, joe darcy wrote:
In terms of timeout, please use much shorter timeout, seconds not
minutes.
In case of timeout value used in RMID.restart() and
RMIDSelectorProvider.inheritedChannel(), I recommend to set it
longer, reason is:
1. in most of runs, the test will not face a "port in use" issue,
because the time window between RMID.start and RMID.restart is small,
so a long timeout value will not impact the test run time;
2. if there is a interloper between RMID.start() and
RMID.restart(), then it's better to wait for a longer time to grab
the expected port again rather than wait shorter time to get a test
failure.
Most JDK regression tests complete in well under 10 seconds and few
tests should run for as long as a minute.
After set "sun.rmi.transport.tcp.handshakeTimeout=5000", test will
not waste too much time at RMID.lookupSystem, normal tests which use
RMID.start and RMID.restart will finish in about dozens of seconds. I
guess running time is acceptable.
Also, please scale any timeout if a timeout factor retrieved from
the jtreg environment. This allows the test to behave better on
heavily loaded or slow machines where the test invoker has requested
more time.
Fixed, scale timeout in RMID.restart and
RMIDSelectorProvider.inheritedChannel based on jtreg time factor.
Thanks,
-Joe
On 11/16/2016 9:01 AM, Chris Hegarty wrote:
On 16 Nov 2016, at 07:36, Hamlin Li <huaming...@oracle.com> wrote:
Would you please review below fix?
bug: https://bugs.openjdk.java.net/browse/JDK-8168975
webrev: http://cr.openjdk.java.net/~mli/8168975/webrev.00/
The approach builds on the mechanism put in for 8168975, and seems
reasonable.
The system property being used to “pass” the port number is
specific to
the test, and not JDK related so should not be named
java.nio.channels.spi.SelectorProviderPort. Maybe something like
openjdk.test.RMIDSelectorProvider.port ?
Fixed, modify as "test.java.rmi.testlibrary.RMIDSelectorProvider.port".
-Chris.
Root Cause: There is a time window between RMID.start() and
RMID.restart(), interloper can step in and bind to the port used
by RMID in RMID.start().
Solution: Modify RMID.java to use inherited channel when calling
RMID.restart. And extend RMIDSelectorProvider.java to try to bind
to specific port, no matter 0 or none-zero(for RMID.restart) in a
while loop, if timeout just call System.exit to exit rmid and let
test fail.
Thank you
-Hamlin