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
8314491: Linux: jexec launched via PATH fails to find java #15343
Conversation
When jexec is found in the PATH, e.g. we run Running updated test without fix in jexec.c:
Running test after fixing jexec.c:
Rerun jdk_launcher tests:
|
👋 Welcome back vpetko! A progress list of the required criteria for merging this PR into |
Webrevs
|
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.
I get the sense from the comment in jexec.c that it is only intended to be launched via a full path, so having it in the $PATH seems like a usage error to me.
That said this change seems relatively harmless, though I confess I do not understand how /proc/self/exe
works and under what conditions reading it returns the actual binary path rather than "/proc/self/exe". ??
Unfortunately this executable is linked in /usr/bin and is assumed to work perfectly when run as just
The '/proc/' filesystem contains a 'self' entry for the current process and 'exe' entry is expected to contain the symbolic link to the actual binary[1] . I do not have much expertise in the kernel development, but as far as I know the value of [1] https://docs.kernel.org/filesystems/proc.html |
Okay so a specific API makes this work as intended. What I can't determine is whether this may have an adverse effect on anyone using an "unusual" path to jexec, that |
Updated and re-run the affected test:
|
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.
Thanks for the update, I feel much more comfortable with this change now.
Please wait for a second review however.
Thanks
@vpa1977 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 59 new commits pushed to the
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. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@dholmes-ora, @RogerRiggs) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
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.
Still good. Thanks
I think looks okay. I'm just surprised that it has been found/used on Linux as this was originally went with a Solaris feature for doing JRE version selection, and I actually thought had been removed a long time ago. |
Would it be ok to type "integrate" at this stage? |
/integrate |
Is this all clear for sponsorship? |
Yes, I have checked with @dholmes-ora |
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.
LGTM
/sponsor |
Going to push as commit dab1c21.
Your commit was automatically rebased without conflicts. |
@dholmes-ora @vpa1977 Pushed as commit dab1c21. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/15343/head:pull/15343
$ git checkout pull/15343
Update a local copy of the PR:
$ git checkout pull/15343
$ git pull https://git.openjdk.org/jdk.git pull/15343/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 15343
View PR using the GUI difftool:
$ git pr show -t 15343
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/15343.diff
Webrev
Link to Webrev Comment