RFR of JDK-8134599: TEST_BUG: java/rmi/transport/closeServerSocket/CloseServerSocket.java fails intermittently with Address already in use

Weijun Wang weijun.wang at oracle.com
Tue Oct 15 06:44:51 UTC 2019


I am OK with the change that makes this test more robust.

However, I am not an expert in RMI and don't know why the port cannot be released. If verifyPortFree(PORT) on line 60 can always succeed right after TestLibrary.getUnusedRandomPort() tries to create a ServerSocket at PORT and close it, this means the OS underneath spends no time in freeing the port. Is UnicastRemoteObject.unexportObject() also doing something similar? I see that the ServerSocket inside is closed on TCPTransport.java:280. Is it reliably called?

Even after this bug is resolved, I'd suggest add some logging and rerun this test unchanged multiple times to see what really happened.

--Max


> On Oct 15, 2019, at 11:04 AM, Hamlin Li <huaming.li at oracle.com> wrote:
> 
> Thanks for reviewing, I updated change at: http://cr.openjdk.java.net/~mli/8134599/webrev.01/
> 
> it does not increase minimum time time and consider timeout factor at the same time.
> 
> Thank you
> 
> -Hamlin
> 
> On 2019/10/15 10:43 AM, Joe Darcy wrote:
>> Hello,
>> 
>> Structurally, I'd prefer an approach that doesn't increase the minimum time needed to run the test.
>> 
>> Any timeout-like value used within the test code should be sensitive to the jtreg timeout factor, as done in the webrev.
>> 
>> Thanks,
>> 
>> -Joe
>> 
>> On 10/14/2019 7:20 PM, Weijun Wang wrote:
>>> +SeanC
>>> 
>>> The wait might unnecessarily increase the test time. Maybe you can do something like this:
>>> 
>>>     int timeout = 10;
>>>     while (timeout > 0) {
>>>        sleep(one second);
>>>        verifyPortFree && return;
>>>        timeout--;
>>>     }
>>>     throw new Exception(still not freed);
>>> 
>>> And Sean, back in JDK-8016728 you said "Let's extend it to 1000ms and see how test behaves". So what do you think?
>>> 
>>> Thanks,
>>> Max
>>> 
>>>> On Oct 15, 2019, at 10:03 AM, Hamlin Li <huaming.li at oracle.com> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> The test is failing more frequently, could some help to review it?
>>>> 
>>>> Thank you
>>>> 
>>>> -Hamlin
>>>> 
>>>> On 2019/9/4 11:11 AM, Hamlin Li wrote:
>>>>> some background & comment: in most of failures, the "test.timeout.factor" is 10.0 or 8.0, so in the test code this factor should be considered in rmi operations such unexporting an object.
>>>>> 
>>>>> Thank you
>>>>> 
>>>>> -Hamlin
>>>>> 
>>>>> On 2019/9/4 11:01 AM, Hamlin Li wrote:
>>>>>> Hi,
>>>>>> 
>>>>>> Would you please review the following patch?
>>>>>> 
>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8134599
>>>>>> 
>>>>>> webrev: http://cr.openjdk.java.net/~mli/8134599/webrev.00/
>>>>>> 
>>>>>> 
>>>>>> Thank you
>>>>>> 
>>>>>> -Hamlin
>>>>>> 



More information about the core-libs-dev mailing list