[infinispan-issues] [JBoss JIRA] (ISPN-1873) ExternalizerTable not detecting cache manager shutdown for provided channels
Galder Zamarreño (JIRA)
jira-events at lists.jboss.org
Tue Feb 21 05:14:36 EST 2012
[ https://issues.jboss.org/browse/ISPN-1873?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12669464#comment-12669464 ]
Galder Zamarreño commented on ISPN-1873:
----------------------------------------
This highlights another, more important issue, which is the fact that even if we set start/stop priorities for components within Infinispan, these might be rendered void within a managed environment, so any assumptions we make in core/ about these priorities are only partial, which can lead to funny/odd bugs like this. For 6.0, we should investigate how to improve this. At the bare minimum, we should have some basic tests where we have multiple cache managers sharing a JGroups channel and see if we can operate against these cache managers and deal with lifecycle events of cache managers in the correct way.
> ExternalizerTable not detecting cache manager shutdown for provided channels
> ----------------------------------------------------------------------------
>
> Key: ISPN-1873
> URL: https://issues.jboss.org/browse/ISPN-1873
> Project: Infinispan
> Issue Type: Bug
> Components: Marshalling, RPC
> Affects Versions: 5.1.1.FINAL
> Reporter: Paul Ferraro
> Assignee: Galder Zamarreño
> Fix For: 5.1.2.CR1, 5.1.2.FINAL
>
>
> During clean shutdown of AS7, we occasionally see log messages like the below stack trace. To detect that the cache manager is being shutdown, ExternalizerTable checks both a "started" boolean flag and the interrupted status of the up handler thread. In the AS, however, the cache manager does not control the lifecycle of the channel - a channel does not stop until its dependent services (e.g. the cache manager) have already stopped. So, the incoming message handling thread won't be interrupted. Objects like ExternalizerTable need to use some other mechanism to distinguish "shutting down" from "not yet started".
> [JBossINF] 12:28:22,463 WARN [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher] Problems unmarshalling remote command from byte buffer: org.infinispan.CacheException: Cache manager is either starting up or shutting down but it's not interrupted, so type (id=74) cannot be resolved.
> [JBossINF] at org.infinispan.marshall.jboss.ExternalizerTable.readObject(ExternalizerTable.java:257) [infinispan-core-5.1.0.CR1.jar:5.1.0.CR1]
> [JBossINF] at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:351)
> [JBossINF] at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
> [JBossINF] at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:37) [jboss-marshalling-1.3.4.GA.jar:1.3.4.GA]
> [JBossINF] at org.infinispan.marshall.jboss.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:120) [infinispan-core-5.1.0.CR1.jar:5.1.0.CR1]
> [JBossINF] at org.infinispan.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:115) [infinispan-core-5.1.0.CR1.jar:5.1.0.CR1]
> [JBossINF] at org.infinispan.marshall.AbstractDelegatingMarshaller.objectFromByteBuffer(AbstractDelegatingMarshaller.java:79) [infinispan-core-5.1.0.CR1.jar:5.1.0.CR1]
> [JBossINF] at org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectFromBuffer(MarshallerAdapter.java:50) [infinispan-core-5.1.0.CR1.jar:5.1.0.CR1]
> [JBossINF] at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:139) [infinispan-core-5.1.0.CR1.jar:5.1.0.CR1]
> [JBossINF] at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:447) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:354) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:230) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:556) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jboss.as.clustering.jgroups.ClassLoaderAwareUpHandler.up(ClassLoaderAwareUpHandler.java:56) [jboss-as-clustering-jgroups-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> [JBossINF] at org.jgroups.blocks.mux.MuxUpHandler.up(MuxUpHandler.java:130) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jboss.as.clustering.jgroups.MuxChannel$ClassLoaderAwareMuxUpHandler.up(MuxChannel.java:64) [jboss-as-clustering-jgroups-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> [JBossINF] at org.jgroups.JChannel.up(JChannel.java:716) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1026) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:481) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.pbcast.STATE_TRANSFER.up(STATE_TRANSFER.java:178) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.FRAG2.up(FRAG2.java:181) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.FlowControl.up(FlowControl.java:400) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.FlowControl.up(FlowControl.java:418) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.pbcast.GMS.up(GMS.java:881) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:244) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.UNICAST2.up(UNICAST2.java:383) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:733) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:561) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.BARRIER.up(BARRIER.java:126) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:140) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.FD.up(FD.java:273) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:284) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.MERGE2.up(MERGE2.java:205) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.Discovery.up(Discovery.java:354) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.stack.Protocol.up(Protocol.java:358) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.TP.passMessageUp(TP.java:1174) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1709) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1691) [jgroups-3.0.1.Final.jar:3.0.1.Final]
> [JBossINF] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_29]
> [JBossINF] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_29]
> [JBossINF] at java.lang.Thread.run(Thread.java:662) [:1.6.0_29]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list