RFR of JDK-8188897: java/rmi/registry/reexport/Reexport.java failed with Port already in use

Hamlin Li huaming.li at oracle.com
Sun Apr 8 08:10:21 UTC 2018


Hi Roger,

I have changed to not use RegistryVM at all, please review the patch: 
http://cr.openjdk.java.net/~mli/8188897/webrev.02/

Thank you

-Hamlin


On 04/04/2018 10:15 PM, Roger Riggs wrote:
> Hi Hamlin,
>
> Reexport.java:
>
> I think this change to use a separate process for the 2nd registry 
> changes the test so that it does not
> address the original test case.  The original problem was the 
> incorrect retention of an object in
> the object table when the create of a registry in the same process 
> failed.
> Finally being able to create the registry in the same process assured 
> that the object was not
> retained in the object table.
>
> Go back to creating the 2nd registry in the test process.
>
>
> RegistryVM.java: 2, the copyright update should be  "2017, 2018," range.
>
> (I'm  really not a fan of all the RegistryVM methods with the same 
> name and minimal and implicit
> differences in their functions.  When reading the test, you have to go 
> and read the RegistryVM method
> to see what it does.  I would have preferred that the full 
> createRegistryVM (out, err, options, port) method
> was used directly in the tests.  In the case of a method used once, it 
> is an inconvenience method, not a convenience).
>
> The new terminate() method is quite similar to the existing cleanup() 
> method which does not wait.
> It would be a good cleanup to figure out if another method is really 
> needed.
> The override is going to change the behavior of the existing uses of 
> terminate().
> It should be checked that it does not break any existing uses.
>
> 178: 187: The method comments are not consistent, one says forcibly 
> and the other gracefully
> but both call requestExit and both call destroy().
>
> Thanks, Roger
>
>
> On 4/3/2018 11:35 PM, Hamlin Li wrote:
>> Hi Joe, Roger,
>>
>> Thank you for reviewing, I have refactored the test more and fix as 
>> you suggested.
>>
>> please review http://cr.openjdk.java.net/~mli/8188897/webrev.01/
>>
>> Thank you
>>
>> -Hamlin
>>
>>
>> On 04/04/2018 10:42 AM, Joseph D. Darcy wrote:
>>> Hello,
>>>
>>> Some general comments on the coding for tests like this:
>>>
>>> * It is preferable to avoid sleep in tests to avoid increasing the 
>>> minimum amount of time a test takes to run. This helps limit the 
>>> overall time it takes the test suite to run.
>>>
>>> * If timeouts are used, it is recommend to factor the maximum time 
>>> waited with the jtreg timeout scaling factor; I don't recall its 
>>> exact name. In other words, many of our tests are run on heavily 
>>> loaded systems and the tests take longer than run than on typical 
>>> laptops and workstations so jtreg is invoked with an timeout scaling 
>>> factor. Individual tests should be sensitive to this scaling factor 
>>> for any internal timeout that need to be used.
>>>
>>> HTH,
>>>
>>> -Joe
>>>
>>> On 4/3/2018 7:48 AM, Roger Riggs wrote:
>>>> Hi Hamlin,
>>>>
>>>> Instead of a simple time delay, it would be useful to wait for the 
>>>> RegistryVM to terminate.
>>>> In killRegistry: 149,  adding subreg.waitFor() should be sufficient.
>>>>
>>>> 58: If using a 'for' loop it would be easier to understand if it 
>>>> included the usual start, increment and termination.
>>>> Instead of burying it in the exception handler.
>>>>
>>>> 59, 102, 104: the introduction of the kill boolean makes the test 
>>>> harder to understand and seems to be unnecessary.
>>>>  the killRegistry() method already will only kill the subprocess if 
>>>> it still is alive.
>>>>
>>>> Roger
>>>>
>>>> On 4/2/2018 6:33 AM, Hamlin Li wrote:
>>>>> would you please review the following patch?
>>>>>
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8188897
>>>>>
>>>>> webrev: http://cr.openjdk.java.net/~mli/8188897/webrev.00/
>>>>>
>>>>>
>>>>> Thank you
>>>>>
>>>>> -Hamlin
>>>>>
>>>>
>>>
>>
>



More information about the core-libs-dev mailing list