Virtual Threads - deadlock with synchronized (Main.class) and System.out.println
Alan Bateman
Alan.Bateman at oracle.com
Tue Jul 18 08:46:43 UTC 2023
On 18/07/2023 07:29, Dr Heinz M. Kabutz wrote:
> Hi Ron,
>
> should this also be emitted with the -Djdk.tracePinnedThreads=full
> event? It doesn't seem to be at the moment.
There's a lot of puzzler material here. That system property prints a
stack trace to System.out so it might, or might not, block trying to
acquire the lock for System.out. Before you ask, the reason you might
not see a JFR event is because that event is committed after the pinned
thread continues (so it can include the duration). In the deadlock
scenario, the thread that is pinned due to synchronized (Main.class) {
... } is not chosen as the waiter to release, so it parks indefinitely.
-Alan
More information about the loom-dev
mailing list