Run this:
$ CONF=linux-x86_64-server-fastdebug make images run-test TEST=java/lang/StackWalker/LocalsAndOperands.java TEST_VM_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+VerifyGraphEdges"
...
# Internal Error (/home/shade/trunks/jdk-jdk/src/hotspot/share/opto/gcm.cpp:1443), pid=22295, tid=22308
# assert(!VerifyGraphEdges) failed: verification should have failed
#
# JRE version: OpenJDK Runtime Environment (15.0) (fastdebug build 15-internal+0-adhoc.shade.jdk-jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 15-internal+0-adhoc.shade.jdk-jdk, compiled mode, sharing, compressed oops, shenandoah gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0xb23f3e] PhaseCFG::global_code_motion()+0x3de
#
Current CompileTask:
C2: 32153 4870 b java.lang.StackStreamFactory$AbstractStackWalker::checkState (163 bytes)
Stack: [0x00007f7ee63f3000,0x00007f7ee64f4000], sp=0x00007f7ee64eedf0, free space=1007k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xb23f3e] PhaseCFG::global_code_motion()+0x3de
V [libjvm.so+0xb268e1] PhaseCFG::do_global_code_motion()+0x51
V [libjvm.so+0x85909f] Compile::Code_Gen()+0x26f
V [libjvm.so+0x85d502] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x1342
V [libjvm.so+0x6d1e50] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x110
V [libjvm.so+0x869a6b] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x2db
V [libjvm.so+0x86aaa8] CompileBroker::compiler_thread_loop()+0x538
V [libjvm.so+0x1689d76] JavaThread::thread_main_inner()+0x206
V [libjvm.so+0x168eba6] Thread::call_run()+0xf6
V [libjvm.so+0x128cc2e] thread_native_entry(Thread*)+0x10e
This only happens with Shenandoah, not with Parallel, nor with G1.