Question regarding JVM crashes in GC
Michael Rasmussen
michael.rasmussen at zeroturnaround.com
Tue Apr 4 08:49:35 UTC 2017
Hi
We are currently in the middle of making JRebel ready for Java 9, and in
that process came across some issues with the concurrent GCs, and was
wondering if anyone here could help shed some insight into what's going
wrong?
Basically, running with the current internal build of JRebel, I can
reproducible crash the JVM by calling System.gc(), if using a concurrent GC.
Output from 9-ea+160-jigsaw-nightly-h6207-20170316 build on Windows x64:
-XX:+UseG1GC: EXCEPTION_ACCESS_VIOLATION # UpdateRSOopClosure::do_oop+0x47
-XX:+UseConcMarkSweepGC: Internal Error (.../synchronizer.cpp:1574),
pid=12588, tid=6176 # guarantee(obj->mark() == markOopDesc::encode(mid))
failed: invariant
-XX:+UseParallelOldGC: Internal Error (.../synchronizer.cpp:1574),
pid=13792, tid=12284 # guarantee(obj->mark() == markOopDesc::encode(mid))
failed: invariant
-XX:+UseParallelGC: EXCEPTION_ACCESS_VIOLATION #
ServiceUtil::visible_oop+0x32
-XX:+UseSerialGC works
With -XX:+VerifyBeforeGC -XX:+VerifyAfterGC
-XX:+UseParallelOldGC: EXCEPTION_ACCESS_VIOLATION # oopDesc::verify+0x2b
-XX:+UseParallelGC: EXCEPTION_ACCESS_VIOLATION # oopDesc::verify+0x38
Rest have same outcome as without the verification.
Also ran on build 9-ea+163 (Windows x64), with similar results (though less
symbol info):
G1: EXCEPTION_ACCESS_VIOLATION [jvm.dll+0x2ac0b7]
CMS: EXCEPTION_ACCESS_VIOLATION [jvm.dll+0x45f1d2]
ParallelOld: Internal Error (.../synchronizer.cpp:1574), pid=10472,
tid=13212 # guarantee(obj->mark() == markOopDesc::encode(mid)) failed:
invariant
Parallel: EXCEPTION_ACCESS_VIOLATION [jvm.dll+0x45f1d2]
JRebel basically instruments every class in the system, including the
classes in java.base. We also set native prefix, so it is likely that we
trigger something somewhere.
Though, at this point, I don't know what. Perhaps the GCs make some
assumptions about some of the classes we touch (like hard-coded method or
field offsets etc?) ?
If anyone here has any idea where to start looking, it would be greatly
appreciated!
Kind regards
Michael Rasmussen
Product Manager, JRebel
ZeroTurnaround
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Virus-free.
www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
More information about the hotspot-dev
mailing list