RFR of JDK-8085192: java/rmi/activation/Activatable tests fail intermittently due to "Port already in use"
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.
> 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.
> 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.
>>> - 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).
>>> (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
>>> 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.
>>>> Thank you
More information about the core-libs-dev