JDK-8335163 : [s390x] test failure - PrintClasses.java
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 22,23,24
  • Priority: P3
  • Status: In Progress
  • Resolution: Unresolved
  • CPU: s390x
  • Submitted: 2024-06-26
  • Updated: 2025-05-27
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Blocks :  
Duplicate :  
Relates :  
Description
PrintClasses.java test is failing on s390 headstream with JTREG="VM_OPTIONS=-XX:-TieredCompilation  -Xcomp". It passes on ppc-le. With same JTREG parameters. 

Log: 

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/amit/head/jdk/src/hotspot/share/opto/graphKit.cpp:2505), pid=3795233, tid=3795250
#  assert(call_addr != nullptr) failed: must not call null targets
#
# JRE version: OpenJDK Runtime Environment (23.0) (fastdebug build 23-internal-adhoc.amit.jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 23-internal-adhoc.amit.jdk, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-s390x)
# Problematic frame:
# V  [libjvm.so+0xa167b6]  GraphKit::make_runtime_call(int, TypeFunc const*, unsigned char*, char const*, TypePtr const*, Node*, Node*, Node*, Node*, Node*, Node*, Node*, Node*)+0x42e
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/amit/head/jdk/build/linux-s390x-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_runtime_CommandLine_PrintClasses_java/scratch/1/core.3795233)
#
# JFR recording file will be written. Location: /home/amit/head/jdk/build/linux-s390x-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_runtime_CommandLine_PrintClasses_java/scratch/1/hs_err_pid3795233.jfr
#
# An error report file with more information is saved as:
# /home/amit/head/jdk/build/linux-s390x-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_runtime_CommandLine_PrintClasses_java/scratch/1/hs_err_pid3795233.log
#
# Compiler replay data is saved as:
# /home/amit/head/jdk/build/linux-s390x-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_runtime_CommandLine_PrintClasses_java/scratch/1/replay_pid3795233.log
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

BT: 
Current CompileTask:
C2:40054 7066    b        jdk.jfr.internal.event.EventWriterFactory::getEventWriter (29 bytes)

Stack: [0x000003ff6f900000,0x000003ff6fd00000],  sp=0x000003ff6fcfb8c8,  free space=4078k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xa167ae]  GraphKit::make_runtime_call(int, TypeFunc const*, unsigned char*, char const*, TypePtr const*, Node*, Node*, Node*, Node*, Node*, Node*, Node*, Node*)+0x42e  (graphKit.cpp:2505)
V  [libjvm.so+0xddbede]  LibraryCallKit::inline_native_getEventWriter()+0xe56  (library_call.cpp:3367)
V  [libjvm.so+0xdeddc8]  LibraryIntrinsic::generate(JVMState*)+0x1d8  (library_call.cpp:118)
V  [libjvm.so+0x7e7d52]  Parse::do_call()+0x312  (doCall.cpp:675)
V  [libjvm.so+0x10b09ae]  Parse::do_one_bytecode()+0x45e  (parse2.cpp:2713)
V  [libjvm.so+0x109f6a2]  Parse::do_one_block()+0x42a  (parse1.cpp:1604)
V  [libjvm.so+0x10a08f4]  Parse::do_all_blocks()+0x15c  (parse1.cpp:721)
V  [libjvm.so+0x10a43ec]  Parse::Parse(JVMState*, ciMethod*, float)+0xb5c  (parse1.cpp:625)
V  [libjvm.so+0x50c01c]  ParseGenerator::generate(JVMState*)+0x16c  (callGenerator.cpp:99)
V  [libjvm.so+0x6cad50]  Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1210  (compile.cpp:792)
V  [libjvm.so+0x5095ca]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1b2  (c2compiler.cpp:142)
V  [libjvm.so+0x6d81a6]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0xce6  (compileBroker.cpp:2303)
V  [libjvm.so+0x6d8caa]  CompileBroker::compiler_thread_loop()+0x512  (compileBroker.cpp:1961)
V  [libjvm.so+0xb36816]  JavaThread::thread_main_inner()+0xfe  (javaThread.cpp:759)
V  [libjvm.so+0x13284a4]  Thread::call_run()+0xc4  (thread.cpp:225)
V  [libjvm.so+0x1050772]  thread_native_entry(Thread*)+0x132  (os_linux.cpp:849)
Comments
These two stub are just checked if they are generated or not by PrintClasses.java test case, but never executed. Execution happens with these two testcase: test/jdk/jdk/jfr/threading/TestManyVirtualThreads.java jdk/jfr/threading/TestStringPoolVirtualThreadPinning.java
25-04-2025

Test is failing because of nullptr returned by these two method in sharedRuntime_s390 file: #if INCLUDE_JFR RuntimeStub* SharedRuntime::generate_jfr_write_checkpoint() { if (!Continuations::enabled()) return nullptr; Unimplemented(); return nullptr; } RuntimeStub* SharedRuntime::generate_jfr_return_lease() { if (!Continuations::enabled()) return nullptr; Unimplemented(); return nullptr; } #endif // INCLUDE_JFR
23-01-2025