8372857: Improve debuggability of java/rmi/server/RemoteServer/AddrInUse.java test#28595
8372857: Improve debuggability of java/rmi/server/RemoteServer/AddrInUse.java test#28595jaikiran wants to merge 3 commits intoopenjdk:masterfrom
Conversation
|
👋 Welcome back jpai! A progress list of the required criteria for merging this PR into |
|
@jaikiran This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be: You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 65 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
Webrevs
|
msheppar
left a comment
There was a problem hiding this comment.
looks like a good cleanup of the test, adding the try with resources and the thread join is good job
LGTM
|
Overall, good cleanup. A couple bits of history. The RMI tests are replete with these kind of ad-hoc timeouts. We've gotten rid of a lot of them over the years, but some of these are still lurking around, such as in this test. It's good to continue to remove them. One of the reasons this sort of stuff was probably added to individual tests was to facilitate running the tests standalone, that is, outsid the jtreg environment. Thus many tests didn't rely on jtreg to handle timeouts. I think we've moved away from this a long time ago. The priority needs to be reliability of tests run in CI systems, which happens many, many times every day. It's still possible, though somewhat inconvenient, to invoke a single test manually via jtreg, but I think this is the way it should be. I'd suggest renaming the |
|
Hello Stuart,
That's a good point. I've updated the PR to rename it to |
|
a minor point on the @bug additions. Typically, this is reserved for a bug id which is an actual fix to JDK source code. There is some ambiguity on this policy, but generally that has been the practice. Maybe it is a topic which should be discussed at a jdk-dev level, and a clearer policy assertion established? |
Thank you for reminding me about that, Mark. The OpenJDK dev guide has clear guidance on what the
(I think this might be a recent update to the guide) I've updated the PR to remove this test specific bug id. |
|
Thank you Mark and Stuart for the reviews. The test continues to pass in our CI with these changes. I'll go ahead and integrate this now. |
|
/integrate |
|
Going to push as commit 04c0f8d.
Your commit was automatically rebased without conflicts. |
Can I please get a review of this test-only change which improves the debuggability of the
java/rmi/server/RemoteServer/AddrInUse.javatest?As noted in https://bugs.openjdk.org/browse/JDK-8213699, this test fails intermittently. The test code launches a Thread which does a
LocateRegistry.createRegistry(port). The test then expects that call to return within (an arbitrary) 10 seconds and if it doesn't, then it considers that the test has ended up reproducing a bug which would cause a hang in the implementation ofLocateRegistry.createRegistry(...)method.The 10 seconds is a reasonable timeout, I think even for busy hosts. But we have seen this test fail because the launched thread which does the
LocateRegistry.createRegistry(...)has either not started or completed within that period.The changes in this PR updates that test code to remove the arbitrary 10 second timeout and instead just wait for the launched thread to complete. If the test doesn't complete within the configured jtreg test timeout (which by default is 2 minutes), then the jtreg and its failure handler infrastructure will gather the necessary thread dump and other states to help debug why the test timed out. This should help understand such intermittent failures in future (if it continues to fail).
I have triggered a tier testing of this change in our CI and will run a test repeat too.
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/28595/head:pull/28595$ git checkout pull/28595Update a local copy of the PR:
$ git checkout pull/28595$ git pull https://git.openjdk.org/jdk.git pull/28595/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 28595View PR using the GUI difftool:
$ git pr show -t 28595Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/28595.diff
Using Webrev
Link to Webrev Comment