Bug: String deduplication misses code roots?

Aleksey Shipilev shade at redhat.com
Tue Feb 20 11:22:44 UTC 2018


On 02/19/2018 11:06 PM, Zhengyu Gu wrote:
> But there does have a race in ShenandoahStrDedupThread::poll() method, where it does not participate
> safepoints, so it can interfere with root scanning.
> 
> As you suggested, added simple version of oops_do() for verification.
> 
> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/strdedup_poll/webrev.00/

OK, this makes sense. Thanks!

Unfortunately, it still fails the same:

#  Internal Error
(/home/shade/trunks/shenandoah-jdk10/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp:814),
pid=73301, tid=73322
#  Error: Shenandoah assert_marked_complete failed; Object should be marked (complete)

Referenced from:
  interior location: 0x000014cfe66554fa
  outside of Java heap
  0x000014cfe66554fa is at entry_point+154 in (nmethod*)0x000014cfe6655090

Object:
  0x00000000c0103348 - klass 0x00000001000007b0 [B
    not allocated after complete mark start
    not allocated after next mark start
    not marked complete
        marked next
        in collection set
  region: |0x000014cff806d400|    2|CS |BTE 0x00000000c0100000, 0x00000000c0180000,
0x00000000c0180000|U 100%|T   0%|G   0%|S 100%|L  99%|FTS           55557|LTS           63058| |CP
0|TAMS 0x00000000c0180000, 0x00000000c0180000|

Forwardee:
  (the object itself)

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list