Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-176

Unmarshalling errors leading to ClassCastException in sender

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 4.0.0.BETA2
    • 4.0.0.BETA1
    • Core
    • None

      In a synchronous replicated cluster, if the receiver fails to marshall the remote command for example like this:

      2009-09-01 15:21:09,098 10101 TRACE [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher] (Incoming-2,localhost.localdomain-25703 Problems invoking command.
      java.io.EOFException: Read past end of file
      at org.jboss.marshalling.AbstractUnmarshaller.eofOnRead(AbstractUnmarshaller.java:180)
      at org.jboss.marshalling.AbstractUnmarshaller.readUnsignedByteDirect(AbstractUnmarshaller.java:308)
      at org.jboss.marshalling.AbstractUnmarshaller.readUnsignedByte(AbstractUnmarshaller.java:276)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:158)
      at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:81)
      at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:64)
      at org.infinispan.marshall.jboss.ConstantObjectTable$ExternalizerAdapter.readObject(ConstantObjectTable.java:255)
      at org.infinispan.marshall.jboss.ConstantObjectTable.readObject(ConstantObjectTable.java:242)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:307)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:158)
      at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:81)
      at org.infinispan.marshall.exts.ReplicableCommandExternalizer.readObject(ReplicableCommandExternalizer.java:64)
      at org.infinispan.marshall.jboss.ConstantObjectTable$ExternalizerAdapter.readObject(ConstantObjectTable.java:255)
      at org.infinispan.marshall.jboss.ConstantObjectTable.readObject(ConstantObjectTable.java:242)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:307)
      at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:158)
      at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:81)
      at org.infinispan.marshall.jboss.JBossMarshaller.objectFromObjectStream(JBossMarshaller.java:206)
      at org.infinispan.marshall.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:104)
      at org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectFromByteBuffer(MarshallerAdapter.java:26)
      at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:135)
      at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:542)
      at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:450)
      at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:327)
      at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:857)
      at org.jgroups.JChannel.up(JChannel.java:1456)
      at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:812)
      at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:489)
      at org.jgroups.protocols.pbcast.STREAMING_STATE_TRANSFER.up(STREAMING_STATE_TRANSFER.java:261)
      at org.jgroups.protocols.FRAG2.up(FRAG2.java:195)
      at org.jgroups.protocols.FC.up(FC.java:487)
      at org.jgroups.protocols.pbcast.GMS.up(GMS.java:894)
      at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:239)
      at org.jgroups.protocols.UNICAST.up(UNICAST.java:297)
      at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:869)
      at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:686)
      at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:143)
      at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:186)
      at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:271)
      at org.jgroups.stack.Protocol.up(Protocol.java:336)
      at org.jgroups.protocols.Discovery.up(Discovery.java:234)
      at org.jgroups.protocols.PING.up(PING.java:282)
      at org.jgroups.protocols.TP.passMessageUp(TP.java:996)
      at org.jgroups.protocols.TP.access$100(TP.java:53)
      at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1502)
      at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1474)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
      at java.lang.Thread.run(Thread.java:595)

      Either, the sender does not deal well with this responses, or such exceptions need to be wrapped in a org.infinispan.remoting.responses.Response instance so that the way the current sender is coded can deal with them accordingly.

              rh-ee-galder Galder ZamarreƱo
              rh-ee-galder Galder ZamarreƱo
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: