-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8317965: TestLoadLibraryDeadlock.java fails with "Unable to load native library.: expected true, was false" #16459
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
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.
RogerRiggs
left a comment
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.javatest runsLoadLibraryDeadlockand wait for 5 seconds and then grab the output. Then runjcmdto 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.ProcessToolsto launchLoadLibraryDeadlocktest 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
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/16459/head:pull/16459$ git checkout pull/16459Update a local copy of the PR:
$ git checkout pull/16459$ git pull https://git.openjdk.org/jdk.git pull/16459/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 16459View PR using the GUI difftool:
$ git pr show -t 16459Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/16459.diff
Webrev
Link to Webrev Comment