Heads-up: jdk/jdk CTW test failures
Zhengyu Gu
zgu at redhat.com
Sun May 19 15:45:13 UTC 2019
Were you using whole patch? if not, sorry for confusing you.
The code roots now are processed inside roots_do() by passing codecache
closure. Let me split the fix out of eliminating RWLock patch, it was
not discovered before.
-Zhengyu
On 5/19/19 10:00 AM, Aleksey Shipilev wrote:
> 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