3.4.6. JNA 临时目录禁止使用 noexec 装载

未匹配的标注

注意:这仅与 Linux 有关

Elasticsearch 使用 Java 本机访问 (JNA) 库来执行一些平台相关的本机代码,在 Linux 上,在运行时从 JNA 存档中提取支持该库的本机代码。默认情况下,此代码被提取到 Elasticsearch 的临时目录中,该目录默认为 / tmp 的子目录。或者,可以使用 JVM 标志 -Djna.tmpdir = <path> 控制此位置。由于本机库以可执行文件的形式映射到 JVM 虚拟地址空间中,因此代码提取到的位置的底层挂载点必须
不能使用 noexec 装载,因为这会阻止 JVM 进程能够将此代码映射为可执行文件。在某些加载的 Linux 安装中,这是 / tmp 的默认安装选项。表示使用 noexec 挂载了基础挂载的一种迹象是,JNA 在启动时将无法加载,会导致 java.lang.UnsatisfiedLinkerError 异常,并带有一条类似 failed to map segment from shared object 映射段。请注意,在 JVM 版本之间,异常消息可能有所不同。此外,依赖于通过 JNA 执行本机代码的 Elasticsearch 组件将失败,并显示消息 because JNA is not available。如果看到此类错误消息,则必须重新挂载用于 JNA 的临时目录,以使其不通过 noexec 进行挂载。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/elasticsearch73...

译文地址:https://learnku.com/docs/elasticsearch73...

上一篇 下一篇
CrazyZard
贡献者:2
讨论数量: 0
发起讨论 查看所有版本


暂无话题~