You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Kevan Miller (JIRA)" <ji...@apache.org> on 2008/12/10 16:06:44 UTC
[jira] Created: (GERONIMO-4458) Another ClassLoader deadlock during
server startup
Another ClassLoader deadlock during server startup
--------------------------------------------------
Key: GERONIMO-4458
URL: https://issues.apache.org/jira/browse/GERONIMO-4458
Project: Geronimo
Issue Type: Bug
Security Level: public (Regular issues)
Affects Versions: 2.2
Reporter: Kevan Miller
Priority: Critical
Fix For: 2.2
G 2.2 TCK testing is running into a ClassLoader deadlock. Here are the stacktraces:
{noformat}
Found one Java-level deadlock:
=============================
"RMI TCP Connection(4)-9.42.75.229":
waiting to lock monitor 0x0849be70 (object 0xd57192c8, a org.apache.geronimo.kernel.config.MultiParentClassLoader),
which is held by "main"
"main":
waiting to lock monitor 0x0849bed4 (object 0xd50ca400, a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader),
which is held by "RMI TCP Connection(4)-9.42.75.229"
Java stack information for the threads listed above:
===================================================
"RMI TCP Connection(4)-9.42.75.229":
at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
- locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:455)
- locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
- locked <0xd4ea35c8> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
- locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
- locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
- locked <0xd50ca400> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
- locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
- locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
- locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
- locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at org.apache.geronimo.security.jaas.ClassOptionLoginModule.initialize(ClassOptionLoginModule.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
at org.apache.geronimo.jmxremoting.Authenticator.authenticate(Authenticator.java:68)
at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:213)
at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
"main":
at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:61)
- waiting to lock <0xd50ca400> (a
org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
- locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
- locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
- locked <0xd51eec50> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
- locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
- locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
- locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
- locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
- locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
- locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
- locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:228)
at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:352)
at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:441)
at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
- locked <0xd500a750> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager)
at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:815)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$752a2ecb.startConfiguration(<generated>)
at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
{noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (GERONIMO-4458) Another ClassLoader deadlock
during server startup
Posted by "David Jencks (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/GERONIMO-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12656917#action_12656917 ]
David Jencks commented on GERONIMO-4458:
----------------------------------------
This plan looks fine to me. Does transformer-agent has any parents other than the system classloader? If not I think the "if classloader is parent of transformer-agent, then ignore." is covered by the 2nd ignore.
> Another ClassLoader deadlock during server startup
> --------------------------------------------------
>
> Key: GERONIMO-4458
> URL: https://issues.apache.org/jira/browse/GERONIMO-4458
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.2
> Reporter: Kevan Miller
> Assignee: Kevan Miller
> Priority: Critical
> Fix For: 2.2
>
>
> G 2.2 TCK testing is running into a ClassLoader deadlock. Here are the stacktraces:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "RMI TCP Connection(4)-9.42.75.229":
> waiting to lock monitor 0x0849be70 (object 0xd57192c8, a org.apache.geronimo.kernel.config.MultiParentClassLoader),
> which is held by "main"
> "main":
> waiting to lock monitor 0x0849bed4 (object 0xd50ca400, a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader),
> which is held by "RMI TCP Connection(4)-9.42.75.229"
> Java stack information for the threads listed above:
> ===================================================
> "RMI TCP Connection(4)-9.42.75.229":
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:455)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd4ea35c8> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd50ca400> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
> at java.lang.Class.getConstructor0(Class.java:2699)
> at java.lang.Class.newInstance0(Class.java:326)
> at java.lang.Class.newInstance(Class.java:308)
> at org.apache.geronimo.security.jaas.ClassOptionLoginModule.initialize(ClassOptionLoginModule.java:50)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
> at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
> at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
> at org.apache.geronimo.jmxremoting.Authenticator.authenticate(Authenticator.java:68)
> at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:213)
> at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> at sun.rmi.transport.Transport$1.run(Transport.java:159)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> "main":
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:61)
> - waiting to lock <0xd50ca400> (a
> org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd51eec50> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:228)
> at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:352)
> at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:441)
> at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
> at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
> - locked <0xd500a750> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager)
> at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:815)
> at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
> at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
> at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$752a2ecb.startConfiguration(<generated>)
> at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
> at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
> at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
> at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (GERONIMO-4458) Another ClassLoader deadlock
during server startup
Posted by "Kevan Miller (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/GERONIMO-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12656871#action_12656871 ]
Kevan Miller commented on GERONIMO-4458:
----------------------------------------
Agreed that the contextclassloader change is not needed -- my mistake.
I agree that disallowing potentially cyclical classloader traversals will avoid deadlocks. I'll code this and assuming I'm happy with the implementation (and it works), will commit.
Note that I think we require the following checks during transform()
if classloader is parent of transformer-agent, then ignore.
if classloader is a parent of an individual ClassFileTransformer implementation, then ignore for the individual transformer.
I'm not advocating this for it's functionality, but it's needed to avoid deadlocks, given current config structure. The alternative is to compute the superset of all parents (transformer-agent parents and each ClassFileTransformer implementation parents).
I think there are a few dependency issues which we should probably address while we're in the neighborhood...
1) wadi-clustering has a dependency on the aspectj config, I don't know why that's needed...
2) GERONIMO-3141 moved transformer-agent jars into the system classpath. I don't think that will be needed any longer and the jars can move back to transformer-agent.
> Another ClassLoader deadlock during server startup
> --------------------------------------------------
>
> Key: GERONIMO-4458
> URL: https://issues.apache.org/jira/browse/GERONIMO-4458
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.2
> Reporter: Kevan Miller
> Assignee: Kevan Miller
> Priority: Critical
> Fix For: 2.2
>
>
> G 2.2 TCK testing is running into a ClassLoader deadlock. Here are the stacktraces:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "RMI TCP Connection(4)-9.42.75.229":
> waiting to lock monitor 0x0849be70 (object 0xd57192c8, a org.apache.geronimo.kernel.config.MultiParentClassLoader),
> which is held by "main"
> "main":
> waiting to lock monitor 0x0849bed4 (object 0xd50ca400, a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader),
> which is held by "RMI TCP Connection(4)-9.42.75.229"
> Java stack information for the threads listed above:
> ===================================================
> "RMI TCP Connection(4)-9.42.75.229":
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:455)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd4ea35c8> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd50ca400> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
> at java.lang.Class.getConstructor0(Class.java:2699)
> at java.lang.Class.newInstance0(Class.java:326)
> at java.lang.Class.newInstance(Class.java:308)
> at org.apache.geronimo.security.jaas.ClassOptionLoginModule.initialize(ClassOptionLoginModule.java:50)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
> at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
> at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
> at org.apache.geronimo.jmxremoting.Authenticator.authenticate(Authenticator.java:68)
> at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:213)
> at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> at sun.rmi.transport.Transport$1.run(Transport.java:159)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> "main":
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:61)
> - waiting to lock <0xd50ca400> (a
> org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd51eec50> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:228)
> at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:352)
> at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:441)
> at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
> at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
> - locked <0xd500a750> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager)
> at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:815)
> at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
> at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
> at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$752a2ecb.startConfiguration(<generated>)
> at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
> at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
> at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
> at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (GERONIMO-4458) Another ClassLoader deadlock
during server startup
Posted by "Kevan Miller (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/GERONIMO-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kevan Miller reassigned GERONIMO-4458:
--------------------------------------
Assignee: Kevan Miller
> Another ClassLoader deadlock during server startup
> --------------------------------------------------
>
> Key: GERONIMO-4458
> URL: https://issues.apache.org/jira/browse/GERONIMO-4458
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.2
> Reporter: Kevan Miller
> Assignee: Kevan Miller
> Priority: Critical
> Fix For: 2.2
>
>
> G 2.2 TCK testing is running into a ClassLoader deadlock. Here are the stacktraces:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "RMI TCP Connection(4)-9.42.75.229":
> waiting to lock monitor 0x0849be70 (object 0xd57192c8, a org.apache.geronimo.kernel.config.MultiParentClassLoader),
> which is held by "main"
> "main":
> waiting to lock monitor 0x0849bed4 (object 0xd50ca400, a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader),
> which is held by "RMI TCP Connection(4)-9.42.75.229"
> Java stack information for the threads listed above:
> ===================================================
> "RMI TCP Connection(4)-9.42.75.229":
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:455)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd4ea35c8> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd50ca400> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
> at java.lang.Class.getConstructor0(Class.java:2699)
> at java.lang.Class.newInstance0(Class.java:326)
> at java.lang.Class.newInstance(Class.java:308)
> at org.apache.geronimo.security.jaas.ClassOptionLoginModule.initialize(ClassOptionLoginModule.java:50)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
> at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
> at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
> at org.apache.geronimo.jmxremoting.Authenticator.authenticate(Authenticator.java:68)
> at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:213)
> at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> at sun.rmi.transport.Transport$1.run(Transport.java:159)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> "main":
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:61)
> - waiting to lock <0xd50ca400> (a
> org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd51eec50> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:228)
> at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:352)
> at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:441)
> at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
> at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
> - locked <0xd500a750> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager)
> at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:815)
> at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
> at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
> at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$752a2ecb.startConfiguration(<generated>)
> at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
> at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
> at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
> at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (GERONIMO-4458) Another ClassLoader deadlock
during server startup
Posted by "Kevan Miller (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/GERONIMO-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12655293#action_12655293 ]
Kevan Miller commented on GERONIMO-4458:
----------------------------------------
So, looks like to me that our use of AspectJ is introducing cycles in ClassLoading -- creating the potential for this type of deadlock...
Will need to try and workout what ClassLoaders the AspectJ weaving is going to invoke. Don't know how we're going to fix, yet.
> Another ClassLoader deadlock during server startup
> --------------------------------------------------
>
> Key: GERONIMO-4458
> URL: https://issues.apache.org/jira/browse/GERONIMO-4458
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.2
> Reporter: Kevan Miller
> Priority: Critical
> Fix For: 2.2
>
>
> G 2.2 TCK testing is running into a ClassLoader deadlock. Here are the stacktraces:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "RMI TCP Connection(4)-9.42.75.229":
> waiting to lock monitor 0x0849be70 (object 0xd57192c8, a org.apache.geronimo.kernel.config.MultiParentClassLoader),
> which is held by "main"
> "main":
> waiting to lock monitor 0x0849bed4 (object 0xd50ca400, a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader),
> which is held by "RMI TCP Connection(4)-9.42.75.229"
> Java stack information for the threads listed above:
> ===================================================
> "RMI TCP Connection(4)-9.42.75.229":
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:455)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd4ea35c8> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd50ca400> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
> at java.lang.Class.getConstructor0(Class.java:2699)
> at java.lang.Class.newInstance0(Class.java:326)
> at java.lang.Class.newInstance(Class.java:308)
> at org.apache.geronimo.security.jaas.ClassOptionLoginModule.initialize(ClassOptionLoginModule.java:50)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
> at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
> at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
> at org.apache.geronimo.jmxremoting.Authenticator.authenticate(Authenticator.java:68)
> at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:213)
> at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> at sun.rmi.transport.Transport$1.run(Transport.java:159)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> "main":
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:61)
> - waiting to lock <0xd50ca400> (a
> org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd51eec50> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:228)
> at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:352)
> at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:441)
> at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
> at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
> - locked <0xd500a750> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager)
> at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:815)
> at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
> at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
> at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$752a2ecb.startConfiguration(<generated>)
> at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
> at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
> at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
> at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (GERONIMO-4458) Another ClassLoader deadlock during
server startup
Posted by "Kevan Miller (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/GERONIMO-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kevan Miller closed GERONIMO-4458.
----------------------------------
Resolution: Fixed
Closing. Problem has been fixed.
> Another ClassLoader deadlock during server startup
> --------------------------------------------------
>
> Key: GERONIMO-4458
> URL: https://issues.apache.org/jira/browse/GERONIMO-4458
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.2
> Reporter: Kevan Miller
> Assignee: Kevan Miller
> Priority: Critical
> Fix For: 2.2
>
>
> G 2.2 TCK testing is running into a ClassLoader deadlock. Here are the stacktraces:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "RMI TCP Connection(4)-9.42.75.229":
> waiting to lock monitor 0x0849be70 (object 0xd57192c8, a org.apache.geronimo.kernel.config.MultiParentClassLoader),
> which is held by "main"
> "main":
> waiting to lock monitor 0x0849bed4 (object 0xd50ca400, a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader),
> which is held by "RMI TCP Connection(4)-9.42.75.229"
> Java stack information for the threads listed above:
> ===================================================
> "RMI TCP Connection(4)-9.42.75.229":
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:455)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd4ea35c8> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd50ca400> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
> at java.lang.Class.getConstructor0(Class.java:2699)
> at java.lang.Class.newInstance0(Class.java:326)
> at java.lang.Class.newInstance(Class.java:308)
> at org.apache.geronimo.security.jaas.ClassOptionLoginModule.initialize(ClassOptionLoginModule.java:50)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
> at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
> at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
> at org.apache.geronimo.jmxremoting.Authenticator.authenticate(Authenticator.java:68)
> at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:213)
> at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> at sun.rmi.transport.Transport$1.run(Transport.java:159)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> "main":
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:61)
> - waiting to lock <0xd50ca400> (a
> org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd51eec50> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:228)
> at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:352)
> at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:441)
> at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
> at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
> - locked <0xd500a750> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager)
> at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:815)
> at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
> at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
> at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$752a2ecb.startConfiguration(<generated>)
> at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
> at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
> at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
> at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (GERONIMO-4458) Another ClassLoader deadlock
during server startup
Posted by "David Jencks (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/GERONIMO-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12656168#action_12656168 ]
David Jencks commented on GERONIMO-4458:
----------------------------------------
I talked with Kevan on irc for a bit.
I don't think the context classloader enters into the question at all.
I think the problem is caused directly by trying to enhance a class in a parent classloader of the enhancer.
Putting all the enhancers in the primordial classloader will obviously fix this problem but maybe this is more than is needed. In our system, enhancers are installed at arbitrary times in the server. They can't expect to be able to enhance classes in their parent classloaders because those classes might have already been loaded.
Therefore we ought to be able to solve the problem by wrapping enhancers in something that checks that the classloader supplied to transform is not a parent of the enhancer's classloader.
something like
public class ClassFileTransformerWrapper implements ClassFileTransformer {
private final ClassFIleTransformer delegate;
private final IdentityHashSet parents;
//constructor
public byte[] transform(java.lang.ClassLoader classLoader, java.lang.String s, java.lang.Class<?> aClass, java.security.ProtectionDomain protectionDomain, byte[] bytes) throws java.lang.instrument.IllegalClassFormatException {
if (parents.contans(classLoader) return null;
return delegate.transform(classLoader, s, aClasss, protectionDoemain, bytes);
}
}
> Another ClassLoader deadlock during server startup
> --------------------------------------------------
>
> Key: GERONIMO-4458
> URL: https://issues.apache.org/jira/browse/GERONIMO-4458
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.2
> Reporter: Kevan Miller
> Priority: Critical
> Fix For: 2.2
>
>
> G 2.2 TCK testing is running into a ClassLoader deadlock. Here are the stacktraces:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "RMI TCP Connection(4)-9.42.75.229":
> waiting to lock monitor 0x0849be70 (object 0xd57192c8, a org.apache.geronimo.kernel.config.MultiParentClassLoader),
> which is held by "main"
> "main":
> waiting to lock monitor 0x0849bed4 (object 0xd50ca400, a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader),
> which is held by "RMI TCP Connection(4)-9.42.75.229"
> Java stack information for the threads listed above:
> ===================================================
> "RMI TCP Connection(4)-9.42.75.229":
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:455)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd4ea35c8> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd50ca400> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
> at java.lang.Class.getConstructor0(Class.java:2699)
> at java.lang.Class.newInstance0(Class.java:326)
> at java.lang.Class.newInstance(Class.java:308)
> at org.apache.geronimo.security.jaas.ClassOptionLoginModule.initialize(ClassOptionLoginModule.java:50)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
> at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
> at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
> at org.apache.geronimo.jmxremoting.Authenticator.authenticate(Authenticator.java:68)
> at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:213)
> at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> at sun.rmi.transport.Transport$1.run(Transport.java:159)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> "main":
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:61)
> - waiting to lock <0xd50ca400> (a
> org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd51eec50> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:228)
> at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:352)
> at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:441)
> at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
> at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
> - locked <0xd500a750> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager)
> at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:815)
> at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
> at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
> at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$752a2ecb.startConfiguration(<generated>)
> at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
> at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
> at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
> at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (GERONIMO-4458) Another ClassLoader deadlock
during server startup
Posted by "Kevan Miller (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/GERONIMO-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12656075#action_12656075 ]
Kevan Miller commented on GERONIMO-4458:
----------------------------------------
I understand the basic issue:
At present, ClassFileTransformer's can introduce cycles in our ClassLoader structure.
Imagine a ClassLoader A whose parents are ClassLoaders B and C. B's parent is C.
{noformat}
C
/ \
B |
\ |
A
{noformat}
On Thread 1 (whose ContextClassLoader is A), we're trying to load a class Z1 and hold monitors on A and C.
On Thread 2 (whose ContextClassLoader is B), we're trying to load a class Z2 and hold a monitor on B and are waiting for a monitor on C.
On Thread1, we are loading class Z1 from ClassLoader C. This will trigger ClassFileTransformer processing for Z1. If this processing requires any Classes to be loaded, we're going to start loading classes using the Thread ContextClassLoader (i.e. A). Since B is a parent of A, we may search ClassLoader B (making B a logical parent of C). So, we have an indirect cycle in our ClassLoader hierarchy.
I think we need to:
1. Set the Thread ContextClassLoader from oag.transform.TransformerCollection.transform() before invoking registered ClassFileTransformers.
2. Move all ClassFileTransformer jars into the primordial ClassLoader.
I've hacked together a server that does the above (hacks were to the server.jar manifest -- i.e. not integrated into a build, yet).
I'm running tests with the above (repeated server starts/stops) and have yet to encounter a problem. Assuming tests continue to run well, I'll intend on making the above changes.
Comments welcome...
> Another ClassLoader deadlock during server startup
> --------------------------------------------------
>
> Key: GERONIMO-4458
> URL: https://issues.apache.org/jira/browse/GERONIMO-4458
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.2
> Reporter: Kevan Miller
> Priority: Critical
> Fix For: 2.2
>
>
> G 2.2 TCK testing is running into a ClassLoader deadlock. Here are the stacktraces:
> {noformat}
> Found one Java-level deadlock:
> =============================
> "RMI TCP Connection(4)-9.42.75.229":
> waiting to lock monitor 0x0849be70 (object 0xd57192c8, a org.apache.geronimo.kernel.config.MultiParentClassLoader),
> which is held by "main"
> "main":
> waiting to lock monitor 0x0849bed4 (object 0xd50ca400, a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader),
> which is held by "RMI TCP Connection(4)-9.42.75.229"
> Java stack information for the threads listed above:
> ===================================================
> "RMI TCP Connection(4)-9.42.75.229":
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:455)
> - locked <0xd4f23b40> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd4ea35c8> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd50ca440> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd50ca400> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd51f63e8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
> at java.lang.Class.getConstructor0(Class.java:2699)
> at java.lang.Class.newInstance0(Class.java:326)
> at java.lang.Class.newInstance(Class.java:308)
> at org.apache.geronimo.security.jaas.ClassOptionLoginModule.initialize(ClassOptionLoginModule.java:50)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756)
> at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
> at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
> at org.apache.geronimo.jmxremoting.Authenticator.authenticate(Authenticator.java:68)
> at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:213)
> at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
> at sun.rmi.transport.Transport$1.run(Transport.java:159)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> "main":
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:61)
> - waiting to lock <0xd50ca400> (a
> org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClassInternal(MultiParentClassLoader.java:441)
> - locked <0xd51edbf8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:69)
> - locked <0xd51eec50> (a org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader)
> at org.apache.geronimo.kernel.config.ChildrenConfigurationClassLoader.loadClass(ChildrenConfigurationClassLoader.java:52)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.checkParents(MultiParentClassLoader.java:483)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:392)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> - locked <0xd57192c8> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHolder.<init>(WeavingAdaptor.java:498)
> at org.aspectj.weaver.tools.WeavingAdaptor.createMessageHandler(WeavingAdaptor.java:179)
> at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:111)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:151)
> at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:156)
> at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:122)
> at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:73)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
> at org.apache.geronimo.transformer.TransformerCollection.transform(TransformerCollection.java:43)
> at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
> at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimizedClass(MultiParentClassLoader.java:407)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:255)
> - locked <0xd5712f78> (a org.apache.geronimo.kernel.config.MultiParentClassLoader)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.<init>(GBeanInstance.java:228)
> at org.apache.geronimo.kernel.basic.BasicKernel.loadGBean(BasicKernel.java:352)
> at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:441)
> at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:190)
> at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562)
> - locked <0xd500a750> (a org.apache.geronimo.kernel.config.EditableKernelConfigurationManager)
> at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
> at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
> at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:815)
> at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
> at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
> at org.apache.geronimo.gbean.GBeanLifecycle$$EnhancerByCGLIB$$752a2ecb.startConfiguration(<generated>)
> at org.apache.geronimo.system.main.EmbeddedDaemon.doStartup(EmbeddedDaemon.java:161)
> at org.apache.geronimo.system.main.EmbeddedDaemon.execute(EmbeddedDaemon.java:78)
> at org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
> at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
> at org.apache.geronimo.cli.daemon.DaemonCLI.main(DaemonCLI.java:30)
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.