On 21.06.2016 04:48, lp_forum wrote:
Hi,
I have a very simple single page app using Java 7 + Spring Boot 1.3.3 +
Groovy Template (using Groovy 2.4.6).
The app starts hanging after it starts and gets hit for a while (it can be
as short as just few hours).
The thread dump shows that hundreds of threads are waiting to lock a
java.util.HashMap, like this:
"http-nio-9044-exec-294" daemon prio=10 tid=0x00007f54d0b68000 nid=0x7632
waiting for monitor entry [0x00007f54c99d6000]
java.lang.Thread.State: BLOCKED (on object monitor)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:266)
- waiting to lock <0x0000000786748cd8> (a java.util.HashMap)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:254)
at
groovy.text.markup.MarkupTemplateEngine$TemplateGroovyClassLoader.parseClass(MarkupTemplateEngine.java:252)
we don“t need the full dump, but we would need to know the deadlock
structure. In the most simple case one thread has a lock and waits for
another, while another thread has that lock and waits for the lock the
first thread has. If we know how that cycle comes into existence, then
we can do something about it. Do you think you can provide that?
bye Jochen