首页 > 解决方案 > 启动时意外的 JVM 崩溃 - 有问题的帧 readdir_r+0x36 - Apparmor 已启用

问题描述

启用 Apparmor 时:

每当我通过 JVM 参数打开 JFR 后启动 JVM 时,JVM 就会崩溃并出现以下错误。

# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b25 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libc.so.6+0xc8556]  readdir_r+0x36
#

...
...

Stack: [0x00007fa86c86f000,0x00007fa86c970000],  sp=0x00007fa86c96eb20,  free space=1022k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libc.so.6+0xc8556]  readdir_r+0x36
V  [libjvm.so+0x6a73d5]  Jfr::initialize_stage_one()+0xc5
V  [libjvm.so+0x6a8bcf]  JfrActivator::start_stage_one(Thread*)+0xf
V  [libjvm.so+0x6a8e8d]  JfrActivator::on_vm_init(Thread*)+0xcd
V  [libjvm.so+0xa7f8ca]  Threads::create_vm(JavaVMInitArgs*, bool*)+0xc0a
V  [libjvm.so+0x6d8d74]  JNI_CreateJavaVM+0x74
C  [libjli.so+0x797e]  JavaMain+0x9e
C  [libpthread.so.0+0x76ba]  start_thread+0xca

我的 JFR 设置如下:

JFR_JAVA_OPTS="-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,disk=true,settings=profile,repository=/tmp,maxage=60m,loglevel=info"

当 Apparmor 被禁用 时,JVM 启动时没有任何错误。

我的要求是,我必须为我的应用程序启用 Apparmor。我应该如何摆脱这个错误?

谢谢。

标签: javajvmapparmorjfr

解决方案


推荐阅读