Assert during stackwalk
Roman Kennke
rkennke at redhat.com
Mon Feb 8 16:58:47 UTC 2021
Hello again,
I think I have now implemented the proper parts for Shenandoah GC in
ShHeap::requires_barriers() now (will send PR shortly) and now I'm
hitting another problem: the Fuzz.java test throws an assertion at me
(when running in Shenandoah aggressive mode, which does a *lot* of GC work):
# Internal Error
(/home/rkennke/src/openjdk/loom/src/hotspot/share/runtime/stackWatermark.cpp:178),
pid=54418, tid=54534
# assert(is_frame_safe(f)) failed: Frame must be safe
The full hs_err:
http://cr.openjdk.java.net/~rkennke/hs_err_pid54418.log
It looks to me that the stackwalk uses the stack watermark mechanism,
and this conflicts with Shenandoah's own use of the stack watermark to
concurrently update thread roots during the evacuation phase. Am I
missing some necessary coordination there?
(Also, is this all Loom tests, or should I also run other tests too?
make run-test TEST=java/lang/Continuation
TEST_VM_OPTS="-XX:+UnlockDiagnosticVMOptions -XX:+UseShenandoahGC
-XX:ShenandoahGCHeuristics=aggressive"
)
Thanks,
Roman
More information about the loom-dev
mailing list