0 Replies Latest reply on May 23, 2008 6:43 PM by Ting Zhou

    JBoss 4.2.1: Classloader hang at findBoostrapClass

    Ting Zhou Newbie

      Recently we run into a serious problem with our JBoss 4.2.1 server. About an hour (sometimes shorter) after the server is started, many threads (hundreds of them) start frequent lockup, all waiting to acquire a "synchronized" lock on AppClassLoader. And the thread that holds the lock has the following stack trace:

      java.lang.ClassLoader.findBootstrapClass(Native Method)
      java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:891)
      java.lang.ClassLoader.loadClass(ClassLoader.java:301)
      java.lang.ClassLoader.loadClass(ClassLoader.java:299)
      sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
      java.lang.ClassLoader.loadClass(ClassLoader.java:251)
      org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1273)
      org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
      -- snip --

      I did a little timing exercise. This simple findBootstrapClass() call, which usually takes a few milliseconds at most, would take 20 seconds to multi-minutes to complete. During this time, since AppClassLoader.loadClass() is synchronized, the entire application simply stops and the requests quickly stack up and crash the application as a result.

      I'm not saying this is a JBoss or JVM bug (though could be), since this only happens after we recently deploys our new application code. Some change in our code triggered this behavior but we don't know what it is, and this behavior only shows up in one of our JBoss servers.

      Any experience on this kind of lockup? This problem has jeopardized our release schedule and any help will be greatly appreciated.

      Ting Zhou