[Design of POJO Server] - Re: Strange classloading behavior -- thread stuck
by bstansberry@jboss.com
Second set of stack traces taken today w/ mod_cluster 1.0.0.Beta3; not sure what AS version but I expect still 5.0.0.GA.
First stack trace for problem thread:
| "Incoming-2,192.168.1.5:42274" prio=10 tid=0x0000000040353800 nid=0x2b3a runnable [0x000000003a2fc000..0x000000003a2ffb70]
| java.lang.Thread.State: RUNNABLE
| at java.lang.Object.notify(Native Method)
| at org.jboss.classloader.spi.base.ClassLoaderManager.unregisterLoaderThread(ClassLoaderManager.java:127)
| - locked <0x000000001ce12608> (a java.util.Collections$SynchronizedList)
| - locked <0x000000001ce12608> (a java.util.Collections$SynchronizedList)
| at org.jboss.classloader.spi.base.BaseClassLoader.unlock(BaseClassLoader.java:1011)
| - locked <0x00000000199bace8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at org.jboss.classloader.spi.base.BaseClassLoader.unlock(BaseClassLoader.java:894)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:289)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked <0x000000001509f8e8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
| - locked <0x000000001509f8e8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.defineClass1(Native Method)
| at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
| at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:62)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:509)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:469)
| at java.security.AccessController.doPrivileged(Native Method)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:467)
| - locked <0x000000001509f8e8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:444)
| at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
| at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
| at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:254)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked <0x000000001509f8e8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at org.jboss.invocation.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:101)
| at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
| at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
| at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
| at org.jboss.ha.framework.server.ClusterPartition.objectFromByteBufferResponseInternal(ClusterPartition.java:1887)
| at org.jboss.ha.framework.server.ClusterPartition$ResponseMarshallerImpl.objectFromByteBuffer(ClusterPartition.java:2084)
| at org.jgroups.blocks.RpcDispatcher$MarshallerAdapter.objectFromByteBuffer(RpcDispatcher.java:138)
| at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:557)
| at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:368)
| at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:775)
| at org.jgroups.JChannel.up(JChannel.java:1274)
| at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:462)
| at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:377)
| at org.jgroups.protocols.pbcast.STATE_TRANSFER.up(STATE_TRANSFER.java:144)
| at org.jgroups.protocols.FRAG2.up(FRAG2.java:192)
| at org.jgroups.protocols.FC.up(FC.java:468)
| at org.jgroups.protocols.pbcast.GMS.up(GMS.java:796)
| at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:233)
| at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:616)
| at org.jgroups.protocols.UNICAST.up(UNICAST.java:282)
| at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:747)
| at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
| at org.jgroups.protocols.FD.up(FD.java:284)
| at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:308)
| at org.jgroups.protocols.MERGE2.up(MERGE2.java:144)
| at org.jgroups.protocols.Discovery.up(Discovery.java:263)
| at org.jgroups.protocols.PING.up(PING.java:270)
| at org.jgroups.protocols.TP$ProtocolAdapter.up(TP.java:2319)
| at org.jgroups.protocols.TP.passMessageUp(TP.java:1253)
| at org.jgroups.protocols.TP.access$100(TP.java:49)
| at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1830)
| at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1809)
| 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)
|
Another thread Bela included in his problem report; not sure if/how it relates and whether it the trace was taken at same time as the one above or later, with the second version below.
| "ajp-192.168.1.5-8009-2" daemon prio=10 tid=0x000000004575b800 nid=0x2b76 in Object.wait() [0x00000000028b6000..0x00000000028b9c70]
| java.lang.Thread.State: WAITING (on object monitor)
| at java.lang.Object.wait(Native Method)
| - waiting on <0x000000001dbed570> (a java.util.Collections$SynchronizedList)
| at java.lang.Object.wait(Object.java:485)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:207)
| - locked <0x000000001dbed570> (a java.util.Collections$SynchronizedList)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked <0x0000000019928de8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
| - locked <0x0000000019928de8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at org.apache.jasper.compiler.JspUtil.<clinit>(JspUtil.java:66)
| at org.apache.jasper.JspCompilationContext.getServletClassName(JspCompilationContext.java:370)
| at org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:510)
| at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:421)
| at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:369)
| at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:581)
| at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
| - locked <0x000000001dbed890> (a org.apache.jasper.servlet.JspServletWrapper)
| at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
| at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
| at org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:109)
| at org.jboss.web.tomcat.service.session.JvmRouteValve.invoke(JvmRouteValve.java:87)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
| at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
| at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
| at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:436)
| at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:384)
| at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| at java.lang.Thread.run(Thread.java:619)
A second stack trace taken later for the JGroups "Incoming" thread shown above:
| "Incoming-2,192.168.1.5:42274" prio=10 tid=0x0000000040353800 nid=0x2b3a runnable [0x000000003a2fc000..0x000000003a2ffb70]
| java.lang.Thread.State: RUNNABLE
| at java.lang.Object.notify(Native Method)
| at org.jboss.classloader.spi.base.ClassLoaderManager.unregisterLoaderThread(ClassLoaderManager.java:127)
| - locked <0x000000001ce12608> (a java.util.Collections$SynchronizedList)
| - locked <0x000000001ce12608> (a java.util.Collections$SynchronizedList)
| at org.jboss.classloader.spi.base.BaseClassLoader.unlock(BaseClassLoader.java:1011)
| - locked <0x00000000199bace8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at org.jboss.classloader.spi.base.BaseClassLoader.unlock(BaseClassLoader.java:894)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:289)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked <0x000000001509f8e8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
| - locked <0x000000001509f8e8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.defineClass1(Native Method)
| at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
| at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:62)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:509)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:469)
| at java.security.AccessController.doPrivileged(Native Method)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:467)
| - locked <0x000000001509f8e8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:444)
| at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
| at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
| at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:254)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked <0x000000001509f8e8> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at org.jboss.invocation.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:101)
| at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
| at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
| at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
| at org.jboss.ha.framework.server.ClusterPartition.objectFromByteBufferResponseInternal(ClusterPartition.java:1887)
| at org.jboss.ha.framework.server.ClusterPartition$ResponseMarshallerImpl.objectFromByteBuffer(ClusterPartition.java:2084)
| at org.jgroups.blocks.RpcDispatcher$MarshallerAdapter.objectFromByteBuffer(RpcDispatcher.java:138)
| at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:557)
| at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:368)
| at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:775)
| at org.jgroups.JChannel.up(JChannel.java:1274)
| at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:462)
| at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:377)
| at org.jgroups.protocols.pbcast.STATE_TRANSFER.up(STATE_TRANSFER.java:144)
| at org.jgroups.protocols.FRAG2.up(FRAG2.java:192)
| at org.jgroups.protocols.FC.up(FC.java:468)
| at org.jgroups.protocols.pbcast.GMS.up(GMS.java:796)
| at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:233)
| at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:616)
| at org.jgroups.protocols.UNICAST.up(UNICAST.java:282)
| at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:747)
| at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
| at org.jgroups.protocols.FD.up(FD.java:284)
| at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:308)
| at org.jgroups.protocols.MERGE2.up(MERGE2.java:144)
| at org.jgroups.protocols.Discovery.up(Discovery.java:263)
| at org.jgroups.protocols.PING.up(PING.java:270)
| at org.jgroups.protocols.TP$ProtocolAdapter.up(TP.java:2319)
| at org.jgroups.protocols.TP.passMessageUp(TP.java:1253)
| at org.jgroups.protocols.TP.access$100(TP.java:49)
| at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1830)
| at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1809)
| 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)
|
Here the "Incoming" thread is caught at the same point in both dumps. Unlikely it's somehow stuck in java.lang.Object.notify() so seems likely to me that the thread's in a tight loop.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4206336#4206336
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4206336
15 years, 2 months
[Design the new POJO MicroContainer] - Re: Generated Classes not found if they do not match any of
by kabir.khan@jboss.com
"adrian(a)jboss.org" wrote :
| You haven't answered why it is defined against the user classloader?
| See my point about classloader leaks.
|
It is defined against the user classloader since as far as I can tell:
-We cannot use the system classloader. The proxies use interfaces from the aop classloader (org.jboss.aop.proxy.container.AspectManaged and org.jboss.aop.proxy.container.Delegate) which are not visible from the system classloader.
-We cannot use the aop classloader. The proxies might have interfaces introduced by the deployment, whose classloader might be in a child domain of the aop classloader's domain. Those interfaces would not be visible from the aop classloader.
At the moment we are caching the generated proxies by deployment classloader. The classloader is the key into a WeakHashMap. If deploymentA wants to create a proxy for ArrayList with no interface introductions, we generate the proxy class using deploymentA's classloader. If deploymentB wants to create a similar proxy for ArrayList, we generate the proxy class using deploymentB's classloader. Subsequent attempts to get a plain ArrayList proxy from deploymentA's classloader will use deploymentA's cached class, and deploymentB will use deploymentB's cached class.
Doesn't your point about classloader leaks hold for any deployment?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4206335#4206335
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4206335
15 years, 2 months
[Design of POJO Server] - Re: Strange classloading behavior -- thread stuck
by bstansberry@jboss.com
First set of thread dumps. Following are two dumps showing the same thread. Following is some back and forth between us about when this happened:
"Bela Ban" wrote : "Brian Stansberry" wrote : A few questions:
| |
| | 1) Is this with a stock AS 5.0.0.GA and a standard install of mod_cluster? I think yes, but am double-checking?
|
| Yes
|
|
| "Brian Stansberry" wrote : 2) Is this reproducible?
|
| Yes. If you run https://jira.jboss.org/jira/browse/MODCLUSTER-31 (IIRC), you always have these long stack traces.
First stack trace for the problem thread:
| Name: Incoming-12,192.168.1.5:57544
| State: RUNNABLE
| Total blocked: 4 Total waited: 24,105
|
| Stack trace:
| java.util.Collections$SynchronizedList.remove(Collections.java:1825)
| - locked java.util.Collections$SynchronizedList@45b84e09
| org.jboss.classloader.spi.base.ClassLoaderManager.unregisterLoaderThread(ClassLoaderManager.java:115)
| - locked java.util.Collections$SynchronizedList@45b84e09
| org.jboss.classloader.spi.base.BaseClassLoader.unlock(BaseClassLoader.java:1011)
| - locked org.jboss.classloader.spi.base.BaseClassLoader@7b17ad7b
| org.jboss.classloader.spi.base.BaseClassLoader.unlock(BaseClassLoader.java:894)
| org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:289)
| org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked org.jboss.classloader.spi.base.BaseClassLoader@3bbe9a50
| java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
| - locked org.jboss.classloader.spi.base.BaseClassLoader@3bbe9a50
| java.lang.ClassLoader.defineClass1(Native Method)
| java.lang.ClassLoader.defineClass(ClassLoader.java:621)
| org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:62)
| org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:509)
| org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:469)
| java.security.AccessController.doPrivileged(Native Method)
| org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:467)
| - locked org.jboss.classloader.spi.base.BaseClassLoader@3bbe9a50
| org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:444)
| org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
| org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
| org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)
| org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:254)
| org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked org.jboss.classloader.spi.base.BaseClassLoader@3bbe9a50
| java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| org.jboss.invocation.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:101)
| java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
| java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
| java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
| java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
| java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
| java.util.HashSet.readObject(HashSet.java:291)
| sun.reflect.GeneratedMethodAccessor209.invoke(Unknown Source)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
| java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
| java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
| java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
| java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
| java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
| java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
| java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
| java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
| org.jboss.ha.framework.server.ClusterPartition.objectFromByteBufferResponseInternal(ClusterPartition.java:1887)
| org.jboss.ha.framework.server.ClusterPartition$ResponseMarshallerImpl.objectFromByteBuffer(ClusterPartition.java:2084)
| org.jgroups.blocks.RpcDispatcher$MarshallerAdapter.objectFromByteBuffer(RpcDispatcher.java:138)
| org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:557)
| org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:368)
| org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:775)
| org.jgroups.JChannel.up(JChannel.java:1274)
| org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:462)
| org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:377)
| org.jgroups.protocols.pbcast.STATE_TRANSFER.up(STATE_TRANSFER.java:144)
| org.jgroups.protocols.FRAG2.up(FRAG2.java:192)
| org.jgroups.protocols.FC.up(FC.java:468)
| org.jgroups.protocols.pbcast.GMS.up(GMS.java:796)
| org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:233)
| org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:616)
| org.jgroups.protocols.UNICAST.up(UNICAST.java:282)
| org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:747)
| org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
| org.jgroups.protocols.FD.up(FD.java:284)
| org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:308)
| org.jgroups.protocols.MERGE2.up(MERGE2.java:144)
| org.jgroups.protocols.Discovery.up(Discovery.java:263)
| org.jgroups.protocols.PING.up(PING.java:270)
| org.jgroups.protocols.TP$ProtocolAdapter.up(TP.java:2319)
| org.jgroups.protocols.TP.passMessageUp(TP.java:1253)
| org.jgroups.protocols.TP.access$100(TP.java:49)
| org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1830)
| org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1809)
| java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
| java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
| java.lang.Thread.run(Thread.java:619)
|
| "Incoming-12,192.168.1.5:57544" prio=10 tid=0x00000000455b1000 nid=0x7b55 runnable [0x000000003ed7f000..0x000000003ed82bf0]
| java.lang.Thread.State: RUNNABLE
| at java.util.Collections$SynchronizedCollection.isEmpty(Collections.java:1560)
| - locked <0x000000001d3ce1d0> (a java.util.Collections$SynchronizedList)
| at org.jboss.classloader.spi.base.ClassLoaderManager.unregisterLoaderThread(ClassLoaderManager.java:113)
| - locked <0x000000001d3ce1d0> (a java.util.Collections$SynchronizedList)
| at org.jboss.classloader.spi.base.BaseClassLoader.unlock(BaseClassLoader.java:1011)
| - locked <0x000000001ac6f480> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at org.jboss.classloader.spi.base.BaseClassLoader.unlock(BaseClassLoader.java:894)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:289)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked <0x0000000015c73390> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
| - locked <0x0000000015c73390> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.defineClass1(Native Method)
| at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
| at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:62)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:509)
| at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:469)
| at java.security.AccessController.doPrivileged(Native Method)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:467)
| - locked <0x0000000015c73390> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:444)
| at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
| at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
| at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)
| at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:254)
| at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
| at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
| at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
| - locked <0x0000000015c73390> (a org.jboss.classloader.spi.base.BaseClassLoader)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
| at org.jboss.invocation.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:101)
| at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
| at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
| at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
| at java.util.HashSet.readObject(HashSet.java:291)
| at sun.reflect.GeneratedMethodAccessor209.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
| at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
| at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
| at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
| at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
| at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
| at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
| at org.jboss.ha.framework.server.ClusterPartition.objectFromByteBufferResponseInternal(ClusterPartition.java:1887)
| at org.jboss.ha.framework.server.ClusterPartition$ResponseMarshallerImpl.objectFromByteBuffer(ClusterPartition.java:2084)
| at org.jgroups.blocks.RpcDispatcher$MarshallerAdapter.objectFromByteBuffer(RpcDispatcher.java:138)
| at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:557)
| at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:368)
| at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:775)
| at org.jgroups.JChannel.up(JChannel.java:1274)
| at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:462)
| at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:377)
| at org.jgroups.protocols.pbcast.STATE_TRANSFER.up(STATE_TRANSFER.java:144)
| at org.jgroups.protocols.FRAG2.up(FRAG2.java:192)
| at org.jgroups.protocols.FC.up(FC.java:468)
| at org.jgroups.protocols.pbcast.GMS.up(GMS.java:796)
| at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:233)
| at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:616)
| at org.jgroups.protocols.UNICAST.up(UNICAST.java:282)
| at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:747)
| at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:167)
| at org.jgroups.protocols.FD.up(FD.java:284)
| at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:308)
| at org.jgroups.protocols.MERGE2.up(MERGE2.java:144)
| at org.jgroups.protocols.Discovery.up(Discovery.java:263)
| at org.jgroups.protocols.PING.up(PING.java:270)
| at org.jgroups.protocols.TP$ProtocolAdapter.up(TP.java:2319)
| at org.jgroups.protocols.TP.passMessageUp(TP.java:1253)
| at org.jgroups.protocols.TP.access$100(TP.java:49)
| at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1830)
| at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1809)
| 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)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4206332#4206332
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4206332
15 years, 2 months
[Design of POJO Server] - Strange classloading behavior -- thread stuck
by bstansberry@jboss.com
When testing mod_cluster, Bela's reported a couple different occurences where a thread appears to be unable to make progress inside some jboss-cl code. The thread is bringing messages up from the cluster which has the effect of locking up the cluster.
Bela provided some thread dump info, which I'll post below. I've been poking around in the relevant code, but it's intricate enough that I'd better call in the experts. In all cases the thread that isn't progressing is inside this section of ClassLoaderManager.unregisterLoaderInThread():
| // Any ThreadTasks associated with this thread must be reassigned
| List<ThreadTask> taskList = loadTasksByThread.get(thread);
| if (taskList != null)
| {
| synchronized (taskList)
| {
| while (taskList.isEmpty() == false)
| {
| ThreadTask threadTask = taskList.remove(0);
| ClassLoadingTask loadTask = threadTask.getLoadTask();
| Thread requestingThread = loadTask.getRequestingThread();
| if( trace )
| log.trace("Reassigning task: " + threadTask+" to " + requestingThread);
| threadTask.setThread(null);
| // Insert the task into the front of requestingThread task list
| List<ThreadTask> toTaskList = loadTasksByThread.get(requestingThread);
| synchronized (toTaskList)
| {
| toTaskList.add(0, threadTask);
| loadTask.nextEvent();
| toTaskList.notify();
| }
| }
| }
| }
Specifically, it's inside the "while (taskList.isEmpty() == false)" block, which leads me to question whether somehow the taskList is never empty. (Uneducated guess: somehow taskList == toTaskList, so this becomes a loop adding and removing threadTask???)
Will post stack traces separately and inform Bela of this thread so he can answer any questions about what exactly he was doing.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4206331#4206331
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4206331
15 years, 2 months
[Design of JBoss jBPM] - Re: BPMN in jbpm4
by camunda
Hi all!
I am very glad to hear that the direction is to go without spec violations :-)
I think first go for jbpm 4 GA and then see what BPMN 2.0 and executable BPMN really brings. I could image that splitting jbpm into 2 languages (jPDL and xBPMN) could make sense, but we will see... For marketing it is obviously a good move to support BPMN, I also got some interested feedback on jbpm 4 supporting it. This could really boost the project further (I hope).
And I would appreciate a blog post from Tom on the thoughts he mentioned as well :-)
For the detail problems: Implementing outgoing XOR by using conditional flows is a valid option. This also has the advantage, that the default flow is clearly marks (something I miss in jbpm 3).
As far as I know graphical extensions are limited to the attached data objects and additional icons in activities. But I wouldn't have a problem with it, if the extensions are clearly different from BPMN standard. The only downside of it is, that the diagram couldn't be transfered to another tool, but this isn't possible anyway and not targeted by jbpm I think.
Cheers
Bernd
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4206269#4206269
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4206269
15 years, 2 months
[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Configure a queue to be ordering aware
by timfox
"gaohoward" wrote : Hi Tim,
|
| So far what I've done with message ordering in JBM 1.4 is client controlled ordering. That means the producer can define that messages that are sent by me have to be received in the strict order of me sending them. The producer does this not by timestamping the messages. Rather it gives each message (in each ordering group) a sequence number.
|
Ok, well that's not how we discussed implementing it before.
The idea was supposed to be that the client sets the ordering group header (it's just a constant string) and the server makes sure messages from that ordering group are delivered in strict order. There should be no sequence on the client side.
In any case, a sequence on the client side doesn't work, since you could have many different producers sending to the same ordering group (e.g. ordering group "europe_orders") and they still need to be processed in strict order, but clearly you can't share the same sequence here.
Looks like the design needs a rethink.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4206258#4206258
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4206258
15 years, 2 months
[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Configure a queue to be ordering aware
by gaohoward
Hi Tim,
So far what I've done with message ordering in JBM 1.4 is client controlled ordering. That means the producer can define that messages that are sent by me have to be received in the strict order of me sending them. The producer does this not by timestamping the messages. Rather it gives each message (in each ordering group) a sequence number. The target queue will order the messages by their sequence numbers, not timestamps.
This doesn't cover the case where user wants messages (whereever they come from) to be ordered at the server (like a gathering point). In that case the 'hit time' make sense.
I agree we should be consistent between 1.4 and 2.0. But we also need to make sure this is what the users would like to have.
Another question I'm thinking is, How the time and order is determined when messages are being sent to a distributed queue? If there are two nodes (diff machines), messages can hit either of the nodes and each node (machine) has its own timing.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4206252#4206252
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4206252
15 years, 2 months