-
-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Please provide a brief summary of the bug
See below crash report. Note that the version below says 17.0.6+10, but I've also seen it on 17.0.9+9. I upgraded hoping it would fix it, but it didn't.
This exact code has worked perfectly on temurinjdk11.0.12+7 for a long time. We recently upgraded to 17, and started seeing this. The code in question is opensource -- apache hbase. Here's a link to our fork of the failing code: https://github.com/HubSpot/hbase/blob/hubspot-2.5/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java#L778
Unfortunately the crash does not happen consistently, instead intermittently. I haven't been able to figure out what confluence of events lead to the crash, or get a core dump.
Reading around, it seems the @ 568 is a bytecode index. I tried decompiling the RegionServerMetricsWrapperRunnable class with javap -p -c -verbose to see if i could align the bci to a line number. I'm not sure if this is reliable, but it aligns to this line.
Please provide steps to reproduce where possible
I can't really provide this. It seems to happen semi-randomly after the jvm has been running for a while, and is probably workload dependent because we run thousands of servers with this code (some aarch64, some x86) across 10s of clusters, and have only seen it happen on 1 cluster. But it happens pretty periodically there.
Expected Results
Don't crash
Actual Results
Crashes
What Java Version are you using?
openjdk version "17.0.9" 2023-10-17 OpenJDK Runtime Environment Temurin-17.0.9+9 (build 17.0.9+9) OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (build 17.0.9+9, mixed mode, sharing)
What is your operating system and platform?
Host: AArch64, 8 cores, 46G, CentOS Stream release 8
How did you install Java?
No response
Did it work before?
Used to work fine with temurinjdk11.0.12+7Did you test with the latest update version?
YesDid you test with other Java versions?
openjdk version "17.0.6" 2023-01-17
OpenJDK Runtime Environment Temurin-17.0.6+10 (build 17.0.6+10)
OpenJDK 64-Bit Server VM Temurin-17.0.6+10 (build 17.0.6+10, mixed mode, sharing)
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment Temurin-17.0.9+9 (build 17.0.9+9)
OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (build 17.0.9+9, mixed mode, sharing)Relevant log output
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (assembler_aarch64.hpp:267), pid=2824384, tid=2824465
# guarantee(chk == -1 || chk == 0) failed: Field too big for insn
#
# JRE version: OpenJDK Runtime Environment Temurin-17.0.6+10 (17.0.6+10) (build 17.0.6+10)
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.6+10 (17.0.6+10, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# V [libjvm.so+0x479360] LIR_Assembler::osr_entry()+0x200
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e" (or dumping to //core.2824384)
#
# If you would like to submit a bug report, please visit:
# https://github.com/adoptium/adoptium-support/issues
#
--------------- S U M M A R Y ------------
Command Line: -Dproc_regionserver -XX:OnOutOfMemoryError=kill -9 %p -Xmx16390m -XX:MaxDirectMemorySize=20825m -Dhbase.default.appender=main -Dlog4j2.configurationFile=/etc/hbase/conf/daemon-log4j2.xml -Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j2.asyncQueueFullPolicy=Discard -Dlog4j2.discardThreshold=FATAL -Dasync.profiler.home=/opt/async-profiler -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/hbase -Djava.net.preferIPv4Stack=true -XX:-OmitStackTraceInFastThrow -Dorg.apache.hbase.thirdparty.io.netty.maxDirectMemory=3221225472 -Dorg.apache.hbase.thirdparty.io.netty.tryReflectionSetAccessible=true -Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=disabled -Djdk.nio.maxCachedBufferSize=262144 -Djava.util.logging.config.class=org.apache.hadoop.hbase.logging.JulToSlf4jInitializer -Xlog:gc*=info,ergo*=trace,age*=trace,safepoint:file=/var/tmp-gc-logs/hbase/gc-regionserver.log:tags,time,uptime,level:filecount=5,filesize=20M -XX:+UseG1GC -XX:+ResizePLAB -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=16M -XX:ParallelGCThreads=8 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=5 -XX:G1MaxNewSizePercent=60 -XX:G1HeapWastePercent=12 -XX:MaxTenuringThreshold=1 -XX:G1MixedGCCountTarget=64 -XX:G1ReservePercent=10 -XX:+ParallelRefProcEnabled -XX:G1OldCSetRegionThresholdPercent=5 -XX:-G1UseAdaptiveIHOP -XX:InitiatingHeapOccupancyPercent=85 -XX:+DisableExplicitGC -XX:+PerfDisableSharedMem -XX:-UseBiasedLocking -XX:+SafepointTimeout -XX:SafepointTimeoutDelay=500 -Xms16390m -XX:+AlwaysPreTouch -Dio.netty.tryReflectionSetAccessible=true --illegal-access=permit --add-modules=jdk.unsupported --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED -Dhbase.log.dir=/var/log/hbase -Dhbase.home.dir=/usr/lib/hbase/bin/.. -Dhbase.id.str=hbase -Dhbase.root.logger=INFO,RFA -Djava.library.path=:/usr/lib/hbase/lib/native/Linux-amd64-64/:/usr/lib/hadoop-0.20/lib/native/Linux-amd64-64/:/usr/lib/hadoop/lib/native -Dhbase.security.logger=INFO,RFAS org.apache.hadoop.hbase.regionserver.HRegionServer start
Host: AArch64, 8 cores, 46G, CentOS Stream release 8
Time: Tue Nov 14 13:20:10 2023 UTC elapsed time: 4353.617495 seconds (0d 1h 12m 33s)
--------------- T H R E A D ---------------
Current thread (0x0000ffff90984e50): JavaThread "C1 CompilerThread0" daemon [_thread_in_native, id=2824465, stack(0x0000ffff493fe000,0x0000ffff495fe000)]
Current CompileTask:
C1:4353617 24783 %s! 3 org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapperImpl$RegionServerMetricsWrapperRunnable::run @ 568 (2086 bytes)
Stack: [0x0000ffff493fe000,0x0000ffff495fe000], sp=0x0000ffff495fb440, free space=2037k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x479360] LIR_Assembler::osr_entry()+0x200
V [libjvm.so+0x476c24] LIR_Assembler::emit_lir_list(LIR_List*)+0x90
V [libjvm.so+0x476e1c] LIR_Assembler::emit_code(BlockList*)+0x5c
V [libjvm.so+0x4478d0] Compilation::emit_code_body()+0x110
V [libjvm.so+0x447cd8] Compilation::compile_java_method()+0x2e4
V [libjvm.so+0x447eec] Compilation::compile_method()+0x10c
V [libjvm.so+0x44825c] Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*, bool, DirectiveSet*)+0x1a8
V [libjvm.so+0x448d74] Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x74
V [libjvm.so+0x5a34a4] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x900
V [libjvm.so+0x5a4248] CompileBroker::compiler_thread_loop()+0x458
V [libjvm.so+0xd7abc8] JavaThread::thread_main_inner()+0x144
V [libjvm.so+0xd7f94c] Thread::call_run()+0x8c
V [libjvm.so+0xb5fa7c] thread_native_entry(Thread*)+0xdc
C [libpthread.so.0+0x78b8] start_thread+0x188