-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
8317965: TestLoadLibraryDeadlock.java fails with "Unable to load native library.: expected true, was false" #16459
Conversation
…ve library.: expected true, was false"
👋 Welcome back mchung! A progress list of the required criteria for merging this PR into |
Webrevs
|
String java = JDKToolFinder.getJDKTool("java"); | ||
List<String> commands = new ArrayList<>(); | ||
Collections.addAll(commands, java); | ||
Collections.addAll(commands, Utils.getTestJavaOpts()); | ||
Collections.addAll(commands, command); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The prose description talks about using ProcessTools, but the runCommand code doesn't use ProcessTools.createTestJavaProcessBuilder. It could save a few steps.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
runCommand
sets the working directory whereas ProcessTools.createTestJavaProcessBuilder
does not. Either way is okay with me if we want to use createTestJavaProcessBuilder
(which will set the VM options).
+ ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder("-cp",
+ "a.jar" + classPathSeparator +
+ "b.jar" + classPathSeparator +
+ "c.jar",
+ "-Djava.library.path=" + testLibraryPath,
+ "LoadLibraryDeadlock")
+ .directory(new File(testClassPath));
+ OutputAnalyzer outputAnalyzer = ProcessTools.executeCommand(pb)
+ .shouldHaveExitValue(0);
or set the class path to the explicit path of the JAR files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated to use createTestJavaProcessBuilder
and more clean up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
@mlchung 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 1 new commit pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
/integrate |
Going to push as commit 5207443.
Your commit was automatically rebased without conflicts. |
TestLoadLibraryDeadlock.java
test runsLoadLibraryDeadlock
and wait for 5 seconds and then grab the output. Then runjcmd
to dump the thread stacks in case there is a deadlock. The test ignores and swallows any exception which makes it hard to diagnose test issues.This PR simplifies the test to use
jdk.test.lib.process.ProcessTools
to launchLoadLibraryDeadlock
test so that the output and error will be captured in the same way as other tools are run by this test. Also update the test to propagate exceptions where appropriate. This hopes to collect more information to diagnose the issue if this test fails next time.Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/16459/head:pull/16459
$ git checkout pull/16459
Update a local copy of the PR:
$ git checkout pull/16459
$ git pull https://git.openjdk.org/jdk.git pull/16459/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 16459
View PR using the GUI difftool:
$ git pr show -t 16459
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/16459.diff
Webrev
Link to Webrev Comment