RFC: Code cache scan should use RESOLVE?
Aleksey Shipilev
shade at redhat.com
Mon Feb 13 08:50:27 UTC 2017
Hi,
Looking through nightly test failures, this caught my eye:
# Internal Error
(/opt/jenkins/workspace/jdk9-shenandoah-fastdebug/hotspot/src/share/vm/gc/shenandoah/shenandoahConcurrentMark.inline.hpp:247),
pid=16927, tid=16935
# assert(oopDesc::unsafe_equals(obj,
ShenandoahBarrierSet::resolve_oop_static(obj))) failed: need to-space object here
V [libjvm.so+0xa6653a] report_vm_error(char const*, int, char const*, char
const*, ...)+0xea
V [libjvm.so+0x143f2d5] ShenandoahMarkRefsClosure::do_oop(oop*)+0x115
V [libjvm.so+0x11f1862] nmethod::oops_do(OopClosure*, bool)+0x542
V [libjvm.so+0xd74a89] CodeBlobToOopClosure::do_code_blob(CodeBlob*)+0x29
V [libjvm.so+0x985523] CodeCache::blobs_do(CodeBlobClosure*)+0x163
V [libjvm.so+0x148e03f] SCMConcurrentMarkingTask::work(unsigned int)+0x1df
V [libjvm.so+0x16d9225] GangWorker::loop()+0xc5
V [libjvm.so+0x1252152] thread_native_entry(Thread*)+0x112
It seems to me that with ShenandoahConcurrentCodeRoots enabled recently, we are
hitting this path. And oops coming from code roots may be stale, so we need to
RESOLVE them? If so, here's a blind patch:
http://cr.openjdk.java.net/~shade/shenandoah/codecache-roots-assert/webrev.01/
I was unable to replicate the failure locally, so this is a shot in the dark.
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list