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