[9] RFR of JDK-8085192: java/rmi/activation/Activatable tests fail intermittently due to "Port already in use"

Chris Hegarty chris.hegarty at oracle.com
Thu Sep 29 15:25:10 UTC 2016


I have asked Hamlin to hold off on this for a day or so.  I have an 
alternative proposal that eliminates the free port anti-pattern.

-Chris.

> On 29 Sep 2016, at 14:55, Roger Riggs <Roger.Riggs at oracle.com> wrote:
> 
> Hi Hamlin,
> 
> One more suggested improvement.   Instead of two copy/paste copies of the launch with options code,
> it would cleaner to create a separate RMID.launch(String[] options) method that would be passed the extra arguments.
> Use it in forceLogSnapshot.java and ShutdownGracefully.java.
> 
> The (current) no-arg version could call the version with args with an empty array(or null).
> There would be only 1 copy of the launch algorithm.
> 
> Roger
> 
> 
> 
> On 9/27/2016 11:22 PM, Hamlin Li wrote:
>> Hi Roger,
>> 
>> Thank you for reviewing.
>> Please check the new webrev: http://cr.openjdk.java.net/~mli/8085192/webrev.01/, and comments inline below.
>> 
>> On 2016/9/27 23:14, Roger Riggs wrote:
>>> Hi Hamlin,
>>> 
>>> Marking each test that uses RMID.launch with the bugid does not seem to be meaningful
>>> since the bug is in the support infrastructure of the test and not specific to the test itself.
>>> It would be overkill to try to confirm the bug was fixed by running all those tests.
>>> Putting the bugid on 1 of the tests would be sufficient.
>> Remove all bug ids except of the one in CheckImplClassLoader.java.
>>> 
>>> JavaVM.java:
>>> 
>>> - 134-138:  Why define these private methods if they are not going to be used in outputContains?
>>> 
>>> - 185:  Its inefficient to convert the byte array to a string for when looking for each string.
>>>    It would be cleaner for JavaVM to have public outputString and errorString methods
>>>    and check them separately in RMID.
>>>   (remove the JavaVM.outputContains method which hides which stream the string appeared in).
>> Fixed.
>>> (It would be a bigger change to change this to use the test library ProcessTools and OutputAnalyzer).
>> Thank you suggestion. Yes, you're right, it will be a little bit complicated to use ProcessTools and OutputAnalyzer in this situation, need to modify these classes, because they will block until process terminates. So I prefer to use current implementation, as it's simple and clear.
>> 
>> Thank you
>> -Hamlin
>>> 
>>> Roger
>>> 
>>> 
>>> On 9/27/2016 5:22 AM, Hamlin Li wrote:
>>>> Please review the fix for JDK-8085192. The fix checks whether it fails to launch rmid due to "Port already in use" error, it will launch rmid again and again(20 times at most) until no such issue.
>>>> 
>>>> bug:
>>>>    https://bugs.openjdk.java.net/browse/JDK-8085192
>>>> webrev:
>>>>    http://cr.openjdk.java.net/~mli/8085192/webrev.00/
>>>> 
>>>> Thank you
>>>> -Hamlin
>>> 
>> 
> 



More information about the core-libs-dev mailing list