Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JDK-8286789: Test forceEarlyReturn002.java timed out #15301

Closed
wants to merge 2 commits into from

Conversation

alexmenkov
Copy link

@alexmenkov alexmenkov commented Aug 15, 2023

This is an attempt to fix suspicious code in the forceEarlyReturn002.java and un-problemlist it to see if the problem appear again.

The test fails in "virtual thread factory" mode with timeout for unclear reason after it finished testing and performs cleanup process (debugger sends debuggee a command to exit, but debuggee doesn't receive the command).
This is the only test which has this intermittent communication failures.
The test was problem-listed, I was not able to reproduce the issue with 1000+ runs.

Debuggee creates a thread which executes tight infinite loop in native code (in "virtual thread factory" mode it's pinned virtual thread).
The fix adds delays in the loop and adds new command to exit from native method after testing.

Testing: 100 runs in "virtual thread factory" mode on all Oracle supported platforms.


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8286789: Test forceEarlyReturn002.java timed out (Bug - P4)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/15301/head:pull/15301
$ git checkout pull/15301

Update a local copy of the PR:
$ git checkout pull/15301
$ git pull https://git.openjdk.org/jdk.git pull/15301/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 15301

View PR using the GUI difftool:
$ git pr show -t 15301

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/15301.diff

Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Aug 15, 2023

👋 Welcome back amenkov! 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 Aug 15, 2023
@openjdk
Copy link

openjdk bot commented Aug 15, 2023

@alexmenkov 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 Aug 15, 2023
@mlbridge
Copy link

mlbridge bot commented Aug 15, 2023

Webrevs

@openjdk
Copy link

openjdk bot commented Aug 16, 2023

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

8286789: Test forceEarlyReturn002.java timed out

Reviewed-by: lmesnik, sspitsyn

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 67 new commits pushed to the master branch:

  • 6bf4a33: 8314242: Update applications/scimark/Scimark.java to accept VM flags
  • bc8e9f4: 8311591: Add SystemModulesPlugin test case that splits module descriptors with new local variables defined by DedupSetBuilder
  • 0f5e030: 8309335: Get rid of use of reflection to call Thread.isVirtual() in nsk/jdi/EventRequestManager/stepRequests/stepreq001t.java
  • f66c73d: 8314166: Update googletest to v1.14.0
  • f239954: 8310134: NMT: thread count in Thread section of VM.native_memory output confusing with virtual threads
  • 2e8a0ab: 8314120: Add tests for FileDescriptor.sync
  • 80809ef: 8314248: Remove HotSpotConstantPool::isResolvedDynamicInvoke
  • 004651d: 8311557: [JVMCI] deadlock with JVMTI thread suspension
  • 9ded868: 8314114: Fix -Wconversion warnings in os code, primarily linux
  • a02d65e: 8310308: IR Framework: check for type and size of vector nodes
  • ... and 57 more: https://git.openjdk.org/jdk/compare/c307391ab1f071b1473cd5f4c12437b8d5e0ca93...master

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 Aug 16, 2023
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.

This looks okay.
There is still a question why the test failed intermittently.
Let's see if it can be reproduced again.
Thanks,
Serguei

@dholmes-ora
Copy link
Member

Infinite loops are not good to have so the test adjustment seems fine in that regard. But I can't see how using the virtual thread factory could trigger a problem with this code.

@alexmenkov
Copy link
Author

Infinite loops are not good to have so the test adjustment seems fine in that regard. But I can't see how using the virtual thread factory could trigger a problem with this code.

It's not clear to me as well.
Debugger sends 'quit' command, but debugee does not receive it (and debugee virtual thread is blocked reading from socket).
The test is problem-listed and I cannot reproduce it in many runs, so I don't see other way to get progress with this issue.
If the test continue to fail with this fix, we'll problemlist it back, at least it adds fresh data for analysis.

@alexmenkov
Copy link
Author

/integrate

@openjdk
Copy link

openjdk bot commented Aug 30, 2023

Going to push as commit c90cd2c.
Since your change was applied there have been 238 commits pushed to the master branch:

  • 89d18ea: 8312018: Improve reservation of class space and CDS
  • dd64a4a: 8315241: (fs) Move toRealPath tests in java/nio/file/Path/Misc.java to separate JUnit 5 test
  • 8e4cda0: 8314834: serviceability/jdwp/AllModulesCommandTest.java ignores VM flags
  • 1ea6463: 8314835: gtest wrappers should be marked as flagless
  • 93e82c0: 8314824: Fix serviceability/jvmti/8036666/GetObjectLockCount.java to use vm flags
  • 7daae1f: 8314263: Signed jars triggering Logger finder recursion and StackOverflowError
  • 6701eba: 8315117: Update Zlib Data Compression Library to Version 1.3
  • e29f0c2: 8297777: Convert jdk.jlink StringSharingPlugin to use Class File API
  • bf63945: 8298992: runtime/NMT/SummarySanityCheck.java failed with "Total committed (MMMMMM) did not match the summarized committed (NNNNNN)"
  • cb3f968: 8314651: G1: Fix -Wconversion warnings in static fields of HeapRegion
  • ... and 228 more: https://git.openjdk.org/jdk/compare/c307391ab1f071b1473cd5f4c12437b8d5e0ca93...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Aug 30, 2023
@openjdk openjdk bot closed this Aug 30, 2023
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Aug 30, 2023
@openjdk
Copy link

openjdk bot commented Aug 30, 2023

@alexmenkov Pushed as commit c90cd2c.

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

@alexmenkov alexmenkov deleted the jdwp_vt_test branch August 31, 2023 00:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
integrated Pull request has been integrated serviceability serviceability-dev@openjdk.org
4 participants