[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Re: RFR: 8276696: ParallelObjectIterator freed at the wrong time in VM_HeapDumper
From: Erik =?UTF-8?B?w5ZzdGVybHVuZA==?= <eosterlund () openjdk ! java ! net>
Date: 2021-11-23 13:42:06
Message-ID: 8246XgMZ_pumK-BgCx9osG0N9jvJxNGmcJVw8s_0oqo=.d723b7d4-ac0e-4897-af9f-65524377ab87 () github ! com
[Download RAW message or body]
On Tue, 23 Nov 2021 09:42:10 GMT, Per Liden <pliden@openjdk.org> wrote:
> > The VM_HeapDumper code uses a C heap allocated ParallelObjectIterator. It is \
> > constructed right before running a parallel operation with a work gang, but freed \
> > in the destructor of the VM_HeapDumper. This means it is created on one thread \
> > and deleted on another thread. This becomes a bit problematic when a parallel \
> > object iterator implementation uses a ThreadsListHandle (which is indeed the case \
> > for ZGC). This patch changes ParallelObjectIterator to be a StackObj, carrying a \
> > ParallelObjectIteratorImpl object, which is never exposed publicly. This ensures \
> > that construction and destruction of the internal object iterator is scoped like \
> > RAII objects, hence complying with how ThreadsListHandle is supposed to be used.
>
> Looks good.
Thanks for the reviews, @pliden and @stefank!
-------------
PR: https://git.openjdk.java.net/jdk/pull/6501
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic