Java 21 clinit deadlock
Simone Bordet
simone.bordet at gmail.com
Fri Sep 15 07:00:19 UTC 2023
David,
On Thu, Sep 14, 2023 at 4:33 AM David Holmes <david.holmes at oracle.com> wrote:
> I've created a draft PR here:
>
> https://github.com/openjdk/jdk/pull/15732
>
> can you apply that patch, build and re-test? Hopefully that will show
> which thread is doing the missing initialization.
We have attached the logs to the pull request above.
Seems like a classic deadlock:
'[8.061s][debug][class,init] Thread ForkJoinPool-1-worker-1 is
initializing org.eclipse.jetty.http.HttpFields'.
...
'[8.113s][debug][class,init] Thread ForkJoinPool-1-worker-2 is
initializing org.eclipse.jetty.http.MutableHttpFields'.
'[8.113s][debug][class,init] Thread ForkJoinPool-1-worker-2 waiting
for initialization of org.eclipse.jetty.http.HttpFields by thread
ForkJoinPool-1-worker-1'.
...
'[8.117s][debug][class,init] Thread ForkJoinPool-1-worker-1
recursively initializing org.eclipse.jetty.http.HttpFields'.
'[8.117s][debug][class,init] Thread ForkJoinPool-1-worker-1 waiting
for initialization of org.eclipse.jetty.http.MutableHttpFields by
thread ForkJoinPool-1-worker-2'.
It is peculiar that we already get this deadlock for the same classes.
Perhaps we are using a pattern in the code that makes it more likely to happen?
Thanks!
--
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless. Victoria Livschitz
More information about the core-libs-dev
mailing list