Set LIBFFI_TMPDIR at startup (#80651)#80698
Merged
elasticsearchmachine merged 1 commit intoelastic:8.0from Nov 15, 2021
Merged
Conversation
Today if `libffi` cannot allocate pages of memory which are both writeable and executable then it will attempt to write code to a temporary file. Elasticsearch configures itself a suitable temporary directory for use by JNA but by default `libffi` won't find this directory and will try various other places. In certain configurations, none of the other places that `libffi` tries are suitable. With older versions of JNA this would result in a `SIGSEGV`; since elastic#80617 the JVM will exit with an exception. With this commit we use the `LIBFFI_TMPDIR` environment variable to configure `libffi` to use the same directory as JNA for its temporary files if they are needed. Closes elastic#18272 Closes elastic#73309 Closes elastic#74545 Closes elastic#77014 Closes elastic#77053 Relates elastic#77285 Co-authored-by: Rory Hunter <roryhunter2@gmail.com>
Collaborator
|
Pinging @elastic/es-core-infra (Team:Core/Infra) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Today if
libfficannot allocate pages of memory which are bothwriteable and executable then it will attempt to write code to a
temporary file. Elasticsearch configures itself a suitable temporary
directory for use by JNA but by default
libffiwon't find thisdirectory and will try various other places. In certain configurations,
none of the other places that
libffitries are suitable. With olderversions of JNA this would result in a
SIGSEGV; since #80617 the JVMwill exit with an exception.
With this commit we use the
LIBFFI_TMPDIRenvironment variable toconfigure
libffito use the same directory as JNA for its temporaryfiles if they are needed.
Closes #18272
Closes #73309
Closes #74545
Closes #77014
Closes #77053
Relates #77285
Co-authored-by: Rory Hunter roryhunter2@gmail.com