Reproducible with attached test case:
$ java -XX:-BackgroundCompilation TestLoadSplitThruPhiNull
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/roland/jdk-jdk/src/hotspot/share/opto/loopnode.hpp:1003), pid=420882, tid=420900
#  Error: assert(has_node(i)) failed
#
# JRE version: OpenJDK Runtime Environment (25.0) (fastdebug build 25-internal-adhoc.roland.jdk-jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 25-internal-adhoc.roland.jdk-jdk, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x139fd2a]  PhaseIdealLoop::get_ctrl(Node const*)+0x3ea
#
call stack:
Stack: [0x00007f9a48cf1000,0x00007f9a48df1000],  sp=0x00007f9a48debd40,  free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x139fd2a]  PhaseIdealLoop::get_ctrl(Node const*)+0x3ea  (loopnode.hpp:1003)
V  [libjvm.so+0x13e91ce]  PhaseIdealLoop::split_thru_phi(Node*, Node*, int)+0x53e  (loopopts.cpp:192)
V  [libjvm.so+0x13ee2b3]  PhaseIdealLoop::split_if_with_blocks_pre(Node*)+0x2c3  (loopopts.cpp:1226)
V  [libjvm.so+0x13f33c5]  PhaseIdealLoop::split_if_with_blocks(VectorSet&, Node_Stack&)+0x1f5  (loopopts.cpp:1982)
V  [libjvm.so+0x13e42d5]  PhaseIdealLoop::build_and_optimize()+0x10c5  (loopnode.cpp:4889)
V  [libjvm.so+0xa9f62f]  PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x3cf  (loopnode.hpp:1113)
V  [libjvm.so+0xa985bc]  Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0x5c  (compile.cpp:2183)
V  [libjvm.so+0xa99322]  Compile::Optimize()+0xa92  (compile.cpp:2430)
V  [libjvm.so+0xa9d2cf]  Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1baf  (compile.cpp:852)
V  [libjvm.so+0x8dba18]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1c8  (c2compiler.cpp:142)
V  [libjvm.so+0xaa9de1]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0xad1  (compileBroker.cpp:2319)
V  [libjvm.so+0xaaad48]  CompileBroker::compiler_thread_loop()+0x4e8  (compileBroker.cpp:1977)
V  [libjvm.so+0xfc3f1e]  JavaThread::thread_main_inner()+0xee  (javaThread.cpp:776)
V  [libjvm.so+0x1b09386]  Thread::call_run()+0xb6  (thread.cpp:232)
V  [libjvm.so+0x160f618]  thread_native_entry(Thread*)+0x128  (os_linux.cpp:860)
C  [libc.so.6+0x961b7]  start_thread+0x377
assert added by 8343148 is causing the failure but underlying (minor) issue has likely been present for a while.