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

Reply via email to