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