Re: Deadlock in Java9.getDefaultImportClasses() ?

Jochen Theodorou <[email protected]>
Newsgroups gmane.comp.lang.groovy.user
Message-ID <[email protected]>
On 08.04.24 16:48, Mutter, Florian wrote:
> After updating Kubernetes from 1.27 to 1.28 one of our applications is
> not working anymore.
>
> The application uses thymeleaf templating engine that uses groove under
> the hood. The application does not respond to request that require a
> template to be rendered. Looking at the stacktrace did not give us any
> hint what is causing this. In the profiler it looks like a lot of time
> is spent waiting in Java9.getDefaultImportClasses() method. We could not
> find any code in there or in ClassFinder.find() that looks like it could
> cause a dead lock.
>
> When attaching the debugger and adding some break points in
> Java9.getDefaultImportClasses() it did work 🤷‍♂️.

This is really weird. Java, Groovy and thymeleaf versions are the same?
What Groovy version are you using btw? What version of Java?


> The only thing that we could see that is different between a working
> setup and a non-working one is the updated Kubernetes with updated node
> images using a newer linux kernel. No idea how this could impact the code.

The linux kernel should not impact that unless it is a bug in Java.

> Does anyone have an idea what could cause this or what we could do to
> identify the cause of the dead lock?
>
> I attached a screenshot of the profiler.

I would be nice to know the line number, then we know at least which of
the 3 possible supplyAsync().get() fails. I was thinking maybe this can
happen if there is an exception... but normally get() should produce an
ExecutionException in that case.

Right now I am a bit clueless

bye Jochen
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.