EAP 6 start up stalls in SecurityUtil.createMethodAndCacheIt
Environment
- JBoss Enterprise Application Platform (6.2.0) and earlier
Issue
- EAP startup and deployment of our applications never completes. We see multiple threads persisting in the following call:
- java.util.HashMap.put(java.lang.Object, java.lang.Object) @bci=102, line=374 (Compiled frame; information may be imprecise)
- org.apache.catalina.security.SecurityUtil.createMethodAndCacheIt(java.lang.reflect.Method[], java.lang.String, java.lang.Object, java.lang.Class[]) @bci=124, line=403 (Interpreted frame)
- org.apache.catalina.security.SecurityUtil.doAsPrivilege(java.lang.String, javax.servlet.Servlet, java.lang.Class[], java.lang.Object[], java.security.Principal) @bci=59, line=161 (Interpreted frame)
- org.apache.catalina.security.SecurityUtil.doAsPrivilege(java.lang.String, javax.servlet.Servlet, java.lang.Class[], java.lang.Object[]) @bci=5, line=120 (Interpreted frame)
- org.apache.catalina.core.StandardWrapper.loadServlet() @bci=391, line=1196 (Interpreted frame)
- org.apache.catalina.core.StandardWrapper.load() @bci=2, line=1102 (Interpreted frame)
- org.apache.catalina.core.StandardContext.loadOnStartup(org.apache.catalina.Container[]) @bci=157, line=3655 (Interpreted frame)
- org.apache.catalina.core.StandardContext.start() @bci=925, line=3873 (Interpreted frame)
- org.jboss.as.web.deployment.WebDeploymentService.start(org.jboss.msc.service.StartContext) @bci=165, line=89 (Interpreted frame)
- org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(org.jboss.msc.service.Service, org.jboss.msc.service.StartContext) @bci=13, line=1811 (Interpreted frame)
- org.jboss.msc.service.ServiceControllerImpl$StartTask.run() @bci=95, line=1746 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.runTask(java.lang.Runnable) @bci=66, line=895 (Compiled frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=33, line=918 (Compiled frame)
- java.lang.Thread.run() @bci=11, line=662 (Interpreted frame)
Resolution
- Upgrade to EAP 6.2.1+ when available
- Apply the following This content is not included.one-off patch for EAP 6.0.1
Root Cause
- Content from issues.jboss.org is not included.JBWEB-282
org.apache.catalina.security.SecurityUtilcan allow concurrent access to a HashMap when deploying multiple applications concurrently, triggering high CPU loops in the HashMap.
Components
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.