#java #jvm #apparmor #jfr
#java #jvm #apparmor #jfr
Вопрос:
При включенном 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 включенным для моего приложения. Как мне избавиться от этой ошибки?
Спасибо.
Комментарии:
1. Происходит ли это для более новых версий JDK 8 или JDK 11?
2. Я использовал только jdk1.8 (сборка 1.8.0_181-b25).
3. JFR, вероятно, пытается инициализировать дисковое хранилище (/ tmp в вашем случае) или прочитать данные из / proc, но Apparmor запрещает доступ.