Fix systemd notify to use a shared arena#135235
Merged
jdconrad merged 4 commits intoelastic:mainfrom Sep 23, 2025
Merged
Conversation
Collaborator
|
Pinging @elastic/es-core-infra (Team:Core/Infra) |
Collaborator
|
Hi @jdconrad, I've created a changelog YAML for you. |
rjernst
reviewed
Sep 22, 2025
|
|
||
| public non-sealed interface JavaLibrary extends NativeLibrary { | ||
| CloseableByteBuffer newBuffer(int len); | ||
| CloseableByteBuffer newBuffer(int len, boolean shared); |
Member
There was a problem hiding this comment.
instead of passing in a boolean, could we separate these two cases into two different methods? That is, have newSharedBuffer and newConfinedBuffer? I think this better matches the model of the jdk with ofShared() and ofConfined. The internal implementation can still use a flag, but the api surface area would be clearly distinct and easily understandable without remember what that flag means.
ldematte
approved these changes
Sep 23, 2025
Contributor
ldematte
left a comment
There was a problem hiding this comment.
++
I really like the new newSharedBuffer/newConfinedBuffer and ofShared/ofConfined.
jdconrad
added a commit
to jdconrad/elasticsearch
that referenced
this pull request
Sep 23, 2025
CloseableByteBuffer currently only uses confined Arena for buffer allocation meaning only the thread creating the Arena is allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing a RuntimeException to be thrown. This changes CloseableByteBuffer to allow for a shared Arena as well for systemd.
This was referenced Sep 23, 2025
jdconrad
added a commit
to jdconrad/elasticsearch
that referenced
this pull request
Sep 23, 2025
CloseableByteBuffer currently only uses confined Arena for buffer allocation meaning only the thread creating the Arena is allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing a RuntimeException to be thrown. This changes CloseableByteBuffer to allow for a shared Arena as well for systemd.
jdconrad
added a commit
to jdconrad/elasticsearch
that referenced
this pull request
Sep 23, 2025
CloseableByteBuffer currently only uses confined Arena for buffer allocation meaning only the thread creating the Arena is allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing a RuntimeException to be thrown. This changes CloseableByteBuffer to allow for a shared Arena as well for systemd.
jdconrad
added a commit
to jdconrad/elasticsearch
that referenced
this pull request
Sep 23, 2025
CloseableByteBuffer currently only uses confined Arena for buffer allocation meaning only the thread creating the Arena is allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing a RuntimeException to be thrown. This changes CloseableByteBuffer to allow for a shared Arena as well for systemd.
Collaborator
elasticsearchmachine
pushed a commit
that referenced
this pull request
Sep 23, 2025
CloseableByteBuffer currently only uses confined Arena for buffer allocation meaning only the thread creating the Arena is allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing a RuntimeException to be thrown. This changes CloseableByteBuffer to allow for a shared Arena as well for systemd.
elasticsearchmachine
pushed a commit
that referenced
this pull request
Sep 23, 2025
CloseableByteBuffer currently only uses confined Arena for buffer allocation meaning only the thread creating the Arena is allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing a RuntimeException to be thrown. This changes CloseableByteBuffer to allow for a shared Arena as well for systemd.
szybia
added a commit
to szybia/elasticsearch
that referenced
this pull request
Sep 23, 2025
…-dls * upstream/main: Bump FLEET_AGENTS_MAPPINGS_VERSION so the new mapping applies on upgrades (elastic#134957) [ML] Adding custom headers support openai text embeddings (elastic#134960) Fix systemd notify to use a shared arena (elastic#135235)
elasticsearchmachine
pushed a commit
that referenced
this pull request
Sep 23, 2025
* Fix systemd notify to use a shared arena (#135235) CloseableByteBuffer currently only uses confined Arena for buffer allocation meaning only the thread creating the Arena is allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing a RuntimeException to be thrown. This changes CloseableByteBuffer to allow for a shared Arena as well for systemd. * fix backport
elasticsearchmachine
pushed a commit
that referenced
this pull request
Sep 23, 2025
* Fix systemd notify to use a shared arena (#135235) CloseableByteBuffer currently only uses confined Arena for buffer allocation meaning only the thread creating the Arena is allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing a RuntimeException to be thrown. This changes CloseableByteBuffer to allow for a shared Arena as well for systemd. * fix backport
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.
CloseableByteBuffercurrently only uses confinedArenafor buffer allocation meaning only the thread creating theArenais allowed to access the native memory. When using elasticsearch with systemd, our notify-extend message is executed on a thread separate from where the native memory was allocated. This is causing aRuntimeExceptionto be thrown. This changesCloseableByteBufferto allow for a sharedArenaas well for systemd.