Bug: String deduplication misses code roots?
Roman Kennke
rkennke at redhat.com
Fri Feb 23 13:20:37 UTC 2018
So, move the SuspendibleThreadSetJoiner sts_join; up to cover poll() maybe?
Changes look ok, but I'm not very much familiar with strdedup code...
Roman
On Tue, Feb 20, 2018 at 12:22 PM, Aleksey Shipilev <shade at redhat.com> wrote:
> 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