我在救生筏入口(侧车(中使用弹性搜索。不幸的是,elasticsearch只能作为root用户启动。否则,我会在自举时的org.elasticsearch.bootstrap.JNANatives.trySetMaxNumberOfThreads
:
V [libjvm.so+0x687142] InterpreterRuntime::resolve_invoke(JavaThread*, Bytecodes::Code)+0x1b2
j org.elasticsearch.bootstrap.JNANatives.trySetMaxNumberOfThreads()V+20
j org.elasticsearch.bootstrap.Natives.trySetMaxNumberOfThreads()V+17
j org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Ljava/nio/file/Path;ZZZ)V+75
我已经检查/更新了当前用户的ulimits,但似乎不允许JNANatives
执行这些方法。该服务以root身份启动良好,但我希望避免服务器上的任何root进程。有人有类似的问题吗?如何调试?这里可能有什么问题?
非常感谢
现在,我发现了这个问题,并想在这里分享它,这样任何有类似问题的人都可以找到可能的提示。我发现,在层次结构的一些文件夹中,有一个装载导致了一些权限问题。这导致org.elasticsearch.bootstrap.JNANatives.trySetMaxNumberOfThreads()
中出现热点JVM本机错误。Liferay报告java.io.StreamCorruptedException: invalid type code: 23
进行弹性搜索。我以为是ulimit
造成的,但事实并非如此。修复顶级文件夹上的装载/文件夹权限,解决了引导问题。