Skip to content

Conversation

@mgronlun
Copy link

@mgronlun mgronlun commented Oct 16, 2020

Greetings,

JDK-8243962 has been a large effort to chase down intermittent timeouts for certain JVMTI tests when run on Windows debug builds in combination with JFR. The background is long, included in JDK-8243962.

In short, the combination of some JVMTI thread suspension tests when run together with JFR on saturated Windows 2016 debug builds can intermittently time out.

There have been two major changes made to JFR derived from JDK-8243962 (linked therein) in an attempt to reduce the poor scalability observed.

Unfortunately, the efforts have not fully resolved the situation entirely as there have still been intermittent sightings for the following tests:

vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/TestDescription.java
vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/TestDescription.java
vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t001/TestDescription.java
vmTestbase/nsk/jvmti/scenarios/sampling/SP03/sp03t002/TestDescription.java

This change will add a requires expression to these tests to exclude the combination of running them with JFR on Windows debug builds.

Thanks
Markus


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Testing

Linux x64 Windows x64 macOS x64
Build ✔️ (5/5 passed) ✔️ (2/2 passed) ✔️ (2/2 passed)
Test (tier1) ✔️ (9/9 passed) ✔️ (9/9 passed) ✔️ (9/9 passed)

Issue

  • JDK-8243962: Various JVM TI tests time out using JFR on Windows

Reviewers

Download

$ git fetch https://git.openjdk.java.net/jdk pull/712/head:pull/712
$ git checkout pull/712

@bridgekeeper
Copy link

bridgekeeper bot commented Oct 16, 2020

👋 Welcome back mgronlun! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot added the rfr Pull request is ready for review label Oct 16, 2020
@openjdk
Copy link

openjdk bot commented Oct 16, 2020

@mgronlun The following label will be automatically applied to this pull request:

  • serviceability

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the serviceability serviceability-dev@openjdk.org label Oct 16, 2020
@mgronlun
Copy link
Author

/label hotspot-jfr

@openjdk openjdk bot added the hotspot-jfr hotspot-jfr-dev@openjdk.org label Oct 16, 2020
@openjdk
Copy link

openjdk bot commented Oct 16, 2020

@mgronlun
The hotspot-jfr label was successfully added.

@mlbridge
Copy link

mlbridge bot commented Oct 16, 2020

Webrevs

@sspitsyn
Copy link
Contributor

Hi Markus,

I'd suggest to simplify the requires statement from:

    • @requires !vm.flightRecorder | !(vm.debug & os.family == "windows")

to:

    • @requires !vm.flightRecorder | !vm.debug | os.family != "windows"

Thanks,
Serguei

@plummercj
Copy link
Contributor

I'd suggest to simplify the requires statement from:

* * @requires !vm.flightRecorder | !(vm.debug & os.family == "windows")

to:

* * @requires !vm.flightRecorder | !vm.debug | os.family != "windows"

How about:

 * @requires !(vm.flightRecorder & vm.debug & os.family == "windows")

This to me more clearly explains that these 3 flags can't be used together.

@sspitsyn
Copy link
Contributor

How about:

  • @requires !(vm.flightRecorder & vm.debug & os.family == "windows")
    I'm okay with this suggestion.

Copy link
Contributor

@sspitsyn sspitsyn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@openjdk
Copy link

openjdk bot commented Oct 18, 2020

@mgronlun 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:

8243962: Various JVM TI tests time out using JFR on Windows

Reviewed-by: sspitsyn, cjplummer

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 1 new commit pushed to the master branch:

  • c17d585: 8246774: implement Record Classes as a standard feature in Java

Please see this link for an up-to-date comparison between the source branch of this pull request and the master branch.
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 master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Oct 18, 2020
Copy link
Contributor

@plummercj plummercj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@mgronlun
Copy link
Author

Thanks @plummercj and @sspitsyn for the reviews!

@mgronlun
Copy link
Author

/integrate

@openjdk openjdk bot closed this Oct 19, 2020
@openjdk openjdk bot added integrated Pull request has been integrated and removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Oct 19, 2020
@openjdk
Copy link

openjdk bot commented Oct 19, 2020

@mgronlun Since your change was applied there have been 10 commits pushed to the master branch:

  • a1a3e9d: 8254882: ZGC: Use static_assert instead of guarantee
  • 8edc2f0: 8254912: ZGC: Change ZCollectionInterval type to double
  • 672f566: 8254874: ZGC: JNIHandleBlock verification failure in stack watermark processing
  • 98a395a: 8254880: ZGC: Let ZList iterators be alias templates
  • 011dd0d: 8254824: SignalHandlerMark have no purpose
  • 736e077: 8254178: Remove .hgignore
  • 51a865d: 8254085: javax/swing/text/Caret/TestCaretPositionJTextPane.java failed with "RuntimeException: Wrong caret position"
  • dd032b7: 8254798: Deprecate for removal an empty finalize() methods in java.desktop module
  • 272bb5d: 8253455: Record Classes javax.lang.model changes
  • c17d585: 8246774: implement Record Classes as a standard feature in Java

Your commit was automatically rebased without conflicts.

Pushed as commit e10b538.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hotspot-jfr hotspot-jfr-dev@openjdk.org integrated Pull request has been integrated serviceability serviceability-dev@openjdk.org

Development

Successfully merging this pull request may close these issues.

3 participants