JBoss is slow with threads heavily blocked in BaseClassLoader.doLoadClass()
Issue
- We're migrating to EAP 5 and now see performance issues in classloading that were not present on earlier versions of EAP.
- Thread dumps show threads blocking heavily in BaseClassLoader.doLoadClass() like so:
"http-0.0.0.0-8080-1" prio=3 tid=0x025a3c00 nid=0x3a9 waiting for monitor entry [0x5de7d000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:495)
- waiting to lock <0x80e22960> (a org.jboss.classloader.spi.base.BaseClassLoader)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:447)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.jboss.classloading.spi.DelegatingClassLoader.loadClass(DelegatingClassLoader.java:87)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.jboss.util.loading.DelegatingClassLoader.loadClass(DelegatingClassLoader.java:97)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
- Thread dumps show the lock owning thread is changing so there is progression but it is unacceptably slow under load
Environment
- JBoss Enterprise Application Platform (EAP) 5
- 5.2.0 and earlier
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.