Heads-up: jdk/jdk CTW test failures
Aleksey Shipilev
shade at redhat.com
Sun May 19 14:00:35 UTC 2019
On 5/19/19 12:24 PM, Zhengyu Gu wrote:
> Fixed in http://cr.openjdk.java.net/~zgu/JDK-8224115/webrev.00/
>
> @@ -191,15 +189,11 @@
> {
> ShenandoahTraversalClosure roots_cl(q, rp);
> ShenandoahMarkCLDClosure cld_cl(&roots_cl);
> MarkingCodeBlobClosure code_cl(&roots_cl, CodeBlobToOopClosure::FixRelocations);
> if (unload_classes) {
> - _rp->strong_roots_do(worker_id, &roots_cl);
> - // Need to pre-evac code roots here. Otherwise we might see from-space constants.
> - ShenandoahWorkerTimings* worker_times = _heap->phase_timings()->worker_times();
> - ShenandoahWorkerTimingsTracker timer(worker_times, ShenandoahPhaseTimings::CodeCacheRoots,
> worker_id);
> - _cset_coderoots->possibly_parallel_blobs_do(&code_cl);
> + _rp->roots_do(worker_id, &roots_cl, NULL, &code_cl);
> } else {
> _rp->roots_do(worker_id, &roots_cl, &cld_cl, &code_cl);
> }
>
> AlwaysTrueClosure is_alive;
Okay. I cannot see off-hand how this is safe: do we walk coderoots somewhere else? I don't think we
are, because the assert below happens if I remove that block from jdk/jdk. Anyway, why is it even
there in "eliminate RWLock" patch? Please split it up as the separate patch.
# Error: Shenandoah assert_not_forwarded failed; Object should not be forwarded
Referenced from:
interior location: 0x00007f6c40d4dbb0
outside of Java heap
0x00007f6c40d4dbb0 points into unknown readable memory: 88 ef ec 0e 07 00 00 00
Object:
0x000000070eecef88 - klass 0x0000000800b5dcf0 jdk.internal.jimage.ImageBufferCache$1
not allocated after mark start
not marked
in collection set
in traversal set
region: | 1|CS |BTE 70ee00000, 70ef00000, 70ef00000|TAMS 70ef00000|U 1024K|T
1024K|G 0B|S 0B|L 0B|CP 0|SN 2, 2, 0, 0
Forwardee:
0x00000007ffe48098 - klass 0x0000000800b5dcf0 jdk.internal.jimage.ImageBufferCache$1
not allocated after mark start
marked
not in collection set
in traversal set
region: | 3857|R |BTE 7ffe00000, 7fff00000, 7fff00000|TAMS 7fff00000|U 1024K|T
0B|G 761K|S 262K|L 968K|CP 0|SN 0, 0, 238, 26a
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native
code)
V [libjvm.so+0x18d52ef] VMError::report_and_die(int, char const*, char const*, __va_list_tag*,
Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x36f
V [libjvm.so+0x18d603f] VMError::report_and_die(Thread*, void*, char const*, int, char const*,
char const*, __va_list_tag*)+0x2f
V [libjvm.so+0xa80b61] report_vm_error(char const*, int, char const*, char const*, ...)+0x111
V [libjvm.so+0x15cec41] ShenandoahAsserts::print_failure(ShenandoahAsserts::SafeLevel, oop, void*,
oop, char const*, char const*, char const*, int)+0x501
V [libjvm.so+0x15d1ca7] ShenandoahAsserts::assert_not_forwarded(void*, oop, char const*, int)+0x127
V [libjvm.so+0x16c29ce] ShenandoahTraversalSATBBufferClosure::do_buffer(void**, unsigned long)+0x7e
V [libjvm.so+0x15910a2] SATBMarkQueue::apply_closure_and_empty(SATBBufferClosure*)+0x122
V [libjvm.so+0x167163d] ShenandoahParallelOopsDoThreadClosure::do_thread(Thread*)+0xed
V [libjvm.so+0x18109d9] Threads::possibly_parallel_threads_do(bool, ThreadClosure*)+0xa9
V [libjvm.so+0x166fe08] ShenandoahThreadRoots::threads_do(ThreadClosure*, unsigned int)+0xe8
V [libjvm.so+0x1670aae] ShenandoahRootScanner::strong_roots_do(unsigned int, OopClosure*,
CLDClosure*, CodeBlobClosure*, ThreadClosure*)+0x18e
V [libjvm.so+0x16c04bf] ShenandoahFinalTraversalCollectionTask::work(unsigned int)+0x20f
V [libjvm.so+0x1948b20] GangWorker::loop()+0xe0
V [libjvm.so+0x1813b06] Thread::call_run()+0xf6
V [libjvm.so+0x141c40e] thread_native_entry(Thread*)+0x10e
-Aleksey
More information about the shenandoah-dev
mailing list