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

8268974: GetJREPath() JLI function fails to locate libjava.so if not standard Java launcher is used #4534

Closed

Conversation

alexeysemenyukoracle
Copy link
Member

@alexeysemenyukoracle alexeysemenyukoracle commented Jun 18, 2021

GetApplicationHomeFromDll() fails if the path to libjli.so contains "bin" component (/tmp/bin/HelloWorld/lib/runtime/lib/libjli.so). TruncatePath() looks for "/bin/" first in "/tmp/bin/HelloWorld/lib/runtime/lib/libjli.so" string and then it looks for "/lib/". But this is wrong order as it should look for "/lib/" first. I.e. TruncatePath() should look for "/bin/" and then for "/lib/" if called from GetApplicationHome() and for "/lib/" first and then for "/bin/" if called from GetApplicationHomeFromDll().


Progress

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

Issue

  • JDK-8268974: GetJREPath() JLI function fails to locate libjava.so if not standard Java launcher is used

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/4534/head:pull/4534
$ git checkout pull/4534

Update a local copy of the PR:
$ git checkout pull/4534
$ git pull https://git.openjdk.java.net/jdk pull/4534/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 4534

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

Using diff file

Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/4534.diff

@bridgekeeper
Copy link

bridgekeeper bot commented Jun 18, 2021

👋 Welcome back asemenyuk! 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 Jun 18, 2021
@openjdk
Copy link

openjdk bot commented Jun 18, 2021

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

  • core-libs

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 core-libs core-libs-dev@openjdk.org label Jun 18, 2021
@mlbridge
Copy link

mlbridge bot commented Jun 18, 2021

Webrevs

@openjdk
Copy link

openjdk bot commented Jun 18, 2021

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

8268974: GetJREPath() JLI function fails to locate libjava.so if not standard Java launcher is used

Reviewed-by: almatvee, herrick, alanb

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

  • a8f1542: 8270455: Remove unused JFR tracer related code in G1CollectedHeap
  • edff556: 8263385: IGV: Graph is not opened in the window that has focus.
  • e7cdfeb: 8270862: Fix problem list entries for 32-bit
  • f8ec3b6: 8270801: Print VM arguments with java -Xlog:arguments
  • a5c9094: Merge
  • 2dddcce: 8270858: Problem List java/awt/Window/MultiWindowApp/MultiWindowAppTest.java on Linux
  • 1350e2b: 8270556: Exclude security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA
  • 58f1ada: 8269636: Change outputStream's print_raw() and print_raw_cr() second parameter to size_t type
  • 67dc1c5: 8270837: fix typos in test TestSigParse.java
  • 1d8d72d: 8270540: G1: Refactor range checking in G1BlockOffsetTablePart::block_start* to asserts
  • ... and 121 more: https://git.openjdk.java.net/jdk/compare/f741e4ca7499193d1d0d07fb27d11cbc0a6de6c1...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 Jun 18, 2021
@AlanBateman
Copy link
Contributor

Is it possible to add a test for this that is completely independent of jpackage? I think there are a few existing tests that copy the run-time image to a new location for testing purposes.

We may need to rename the JBS description to make it clearer what this issue is about.

A minor nit is that "pathisso" will be confusing to anyone looking at this code, maybe find a better name or put a comment in TruncatePath to explain it. I assume the comments at the findLastPathComponent use site will also need to be clarified.

@alexeysemenyukoracle
Copy link
Member Author

The test should use java launcher dynamically linked to libjli.so. So the standard java launcher wouldn't work. I can provide C source code of a test java launcher dynamically linked to libjli.so though. The test will need to compile java launcher from the source code. This looks more sophisticated compared to providing another jpackage test for this use case.

- pathisso -> pathisdll.
@alexeysemenyukoracle alexeysemenyukoracle changed the title 8268974: jpackage fails to handle --dest option containing "bin" folder 8268974: GetJREPath() JLI function fails to locate libjava.so if not standard Java launcher is used Jun 24, 2021
@alexeysemenyukoracle
Copy link
Member Author

@AlanBateman any input on this issue from you?

@AlanBateman
Copy link
Contributor

@AlanBateman any input on this issue from you?

Same comment as before, I think we should try to add a test. If a native test that links to libjli isn't feasible then a jpackage test that creates the scenario that Maurizio ran should be okay.

@alexeysemenyukoracle
Copy link
Member Author

@AlanBateman jpackage test reproducing the issue added.

@alexeysemenyukoracle
Copy link
Member Author

/integrate

@openjdk
Copy link

openjdk bot commented Jul 22, 2021

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

  • c1c4048: 8249634: doclint should report implicit constructor as missing javadoc comments
  • 09e5321: 8225313: serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatObjectCorrectnessTest.java failed with Unexpected high difference percentage
  • 258f188: 8270961: [TESTBUG] Move GotWrongOOMEException into vm.share.gc package
  • 3cadc36: 8270336: [TESTBUG] Fix initialization in NonbranchyTree
  • c2ed336: 8270912: Clean up G1CollectedHeap::process_discovered_references()
  • 8e27d4e: 8271043: Rename G1CollectedHeap::g1mm()
  • d1257d5: 8271126: ProblemList runtime/InvocationTests/invokevirtualTests.java
  • 50bb731: 8270286: com.sun.net.httpserver.spi.HttpServerProvider: remove use of deprecated API
  • 9131a8f: 8267940: [macos] java/awt/print/Dialog/DialogOwnerTest.java fails
  • 6096dd9: 8268893: jcmd to trim the glibc heap
  • ... and 175 more: https://git.openjdk.java.net/jdk/compare/f741e4ca7499193d1d0d07fb27d11cbc0a6de6c1...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot closed this Jul 22, 2021
@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 Jul 22, 2021
@openjdk
Copy link

openjdk bot commented Jul 22, 2021

@alexeysemenyukoracle Pushed as commit 984003d.

💡 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
core-libs core-libs-dev@openjdk.org integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

4 participants