Profile Image
Debleen Biswas

Need to know which thread dump is causing high thread utilization

All the threads are exhausted, we are looking at the thread dump of same. need to know which is causing this hight thread utilisation and how you came to that conclusion?



Report URL - https://fastthread.io/my-thread-report.jsp?p=c2hhcmVkLzIwMjEvMDUvNy8tLXRkICgxKS50eHQtLTctMy01MQ==

  • exhaustedthreadpool

  • highthreadutilisation

Please Sign In or to post your comment or answer

Profile Image

Mahesh

Hi Debleen!

 

In your application, the thread 'http-nio-8080-exec-13' is stuck in java.util.zip.ZipFile.getEntry() method at line 314. Due to that total 39 threads are blocked because before getting stuck it acquired 4 locks and never released. You can check the 'transitive graph' section in the fastThread report and click on each thread to check its stack trace.

 

 

Here are the top few lines from the stack trace of thread 'http-nio-8080-exec-13'  - 

http-nio-8080-exec-13
Stack Trace is:
java.lang.Thread.State: BLOCKED (on object monitor)
at java.util.zip.ZipFile.getEntry(ZipFile.java:314)
- locked <0x0000000707bd0608> (a java.util.jar.JarFile)
at java.util.jar.JarFile.getEntry(JarFile.java:240)
at java.util.jar.JarFile.getJarEntry(JarFile.java:223)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry(AbstractSingleArchiveResourceSet.java:97)
at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:257)
at org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:281)
at org.apache.catalina.webresources.Cache.getResource(Cache.java:62)
at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:216)
at org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:225)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2285)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:859)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
- locked <0x0000000740a1d238> (a java.lang.Object)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:727)
:
:

 

If you see the 'Threads with identical stack trace' section in the fastThread report, you will see many threads are in a BLOCKED state and they are having similar stack trace. You should investigate these threads. If the threads are in a blocked state for a longer duration then your application may become unresponsive.

 

There are 3 more threads that are stuck and due to that other threads are also BLOCKED. You can check the 'transitive graph' section in the fastThread report for more details.

 

1. Thread 'http-nio-8080-exec-197' - 

 

This thread is stuck in java.lang.Throwable.fillInStackTrace() method. Before getting stuck here it acquired 7 locks and never released and due to that other 8 threads are BLOCKED. Here are the top few lines of the thread stack trace.

http-nio-8080-exec-197
Stack Trace is:
java.lang.Thread.State: RUNNABLE
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Throwable.java:783)
- locked <0x0000000705ab02b8> (a java.lang.ClassNotFoundException)
at java.lang.Throwable.<init>(Throwable.java:287)
at java.lang.Exception.<init>(Exception.java:84)
at java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:75)
at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:82)
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
- locked <0x0000000740a21c50> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x0000000740a25298> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x0000000740a24ec8> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1350)
- locked <0x0000000740a1e800> (a java.lang.Object)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:727)
:
:

 

2. Thread 'http-nio-8080-exec-56' - 

 

This thread is stuck in java.lang.Throwable.fillInStackTrace() method. Before getting stuck here it acquired 4 locks and never released and due to that other 4 threads are BLOCKED. Here are the top few lines of a thread stack trace.

 

http-nio-8080-exec-56
Stack Trace is:
java.lang.Thread.State: RUNNABLE
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Throwable.java:783)
- locked <0x0000000705aa9788> (a java.lang.ClassNotFoundException)
at java.lang.Throwable.<init>(Throwable.java:287)
at java.lang.Exception.<init>(Exception.java:84)
at java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:75)
at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:82)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:886)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
- locked <0x0000000740a1cb78> (a java.lang.Object)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:739)
:
:

 

3. Thread 'http-nio-8080-exec-165' - 

 

This thread is stuck in java.lang.ClassLoader.findLoadedClass0() method. Before getting stuck here it acquired 4 locks and never released and due to that other 4 threads are BLOCKED. Here are the top few lines of a thread stack trace.

 

http-nio-8080-exec-165
Stack Trace is:
java.lang.Thread.State: RUNNABLE
at java.lang.ClassLoader.findLoadedClass0(Native Method)
at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:1038)
at java.lang.ClassLoader.loadClass(ClassLoader.java:406)
- locked <0x0000000740a90428> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1350)
- locked <0x0000000740a8b390> (a java.lang.Object)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)
at org.springframework.util.ClassUtils.isPresent(ClassUtils.java:327)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:760)
:
:

 

In your application, the below 2 threads are throwing exceptions. You will need to check its stack trace and investigate the error. Check the 'Exception' section in the fastThread report for the complete stack trace.

 

1. Thread 'http-nio-8080-exec-197' - This thread is throwing ClassNotFoundException. Here are the top few lines of stack trace.

stackTrace:
java.lang.Thread.State: RUNNABLE
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Throwable.java:783)
- locked <0x0000000705ab02b8> (a java.lang.ClassNotFoundException)
at java.lang.Throwable.<init>(Throwable.java:287)
at java.lang.Exception.<init>(Exception.java:84)
at java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:75)
at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:82)
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
- locked <0x0000000740a21c50> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x0000000740a25298> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:411)
- locked <0x0000000740a24ec8> (a java.lang.Object)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1350)
- locked <0x0000000740a1e800> (a java.lang.Object)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:727)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.configure(Jackson2ObjectMapperBuilder.java:607)
:
:

 

2. Thread 'http-nio-8080-exec-56' - This thread is throwing ClassNotFoundException. Here are the top few lines of the stack trace.

stackTrace:
java.lang.Thread.State: RUNNABLE
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Throwable.java:783)
- locked <0x0000000705aa9788> (a java.lang.ClassNotFoundException)
at java.lang.Throwable.<init>(Throwable.java:287)
at java.lang.Exception.<init>(Exception.java:84)
at java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:75)
at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:82)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:886)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
- locked <0x0000000740a1cb78> (a java.lang.Object)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.registerWellKnownModulesIfAvailable(Jackson2ObjectMapperBuilder.java:739)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.configure(Jackson2ObjectMapperBuilder.java:607)
at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:590)
at org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init>(MappingJackson2HttpMessageConverter.java:57)
at org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter.<init>(AllEncompassingFormHttpMessageConverter.java:66)
:
:

 

Also, I could see that in your application 11 threads are having more than 200 lines. Large size stacks may cause StackOverflowError. Check the 'Threads Stack Length' section in the fastThread report to analyze the stack trace of all 11 threads.

Got something else on mind? Post Your Question

Not the answer you're looking for? Browse other questions tagged
  • exhaustedthreadpool

  • highthreadutilisation