3 Replies Latest reply on Feb 22, 2007 7:41 AM by Victor Batista

    java.io.StreamCorruptedException: invalid stream header

    Victor Batista Newbie

      Hello!
      I have just migrated to JBossCache-1.4.1.SP1 (JBoss 4.0.3SP1). I copied jboss-cache.jar and jboss-serialization.jar to jboss' lib dir. With two machines, the former to startup gives the error below when the second starts up. Despite the error on node discovery, everything works fine during execution. Any help would be appreciated.

      2007-02-12 09:04:31,198 WARN [org.jboss.ha.framework.interfaces.HAPartition.DefaultPartition] failed unserializing message buffer (msg=[dst: 228.1.2.3:55556, src: 192.168.1.156:1737 (2 headers), size = 289 bytes])
      java.io.StreamCorruptedException: invalid stream header
      at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:764)
      at java.io.ObjectInputStream.(ObjectInputStream.java:277)
      at org.jboss.invocation.MarshalledValueInputStream.(MarshalledValueInputStream.java:60)
      at org.jboss.ha.framework.server.HAPartitionImpl.objectFromByteBuffer(HAPartitionImpl.java:135)
      at org.jboss.ha.framework.server.HAPartitionImpl.handle(HAPartitionImpl.java:943)
      at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:650)
      at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:535)
      at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:358)
      at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:775)
      at org.jgroups.JChannel.up(JChannel.java:1091)
      at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:377)
      at org.jgroups.stack.ProtocolStack.receiveUpEvent(ProtocolStack.java:393)
      at org.jgroups.stack.Protocol.passUp(Protocol.java:538)
      at org.jgroups.protocols.pbcast.STATE_TRANSFER.up(STATE_TRANSFER.java:158)
      at org.jgroups.stack.UpHandler.run(Protocol.java:60)



      Thanks in advance,
      Victor Batista

        • 1. Re: java.io.StreamCorruptedException: invalid stream header
          Victor Batista Newbie

          Hi!
          This problem only happens with the ClusterPartition. I have also defined 2 TreeCache's and they work ok (I used the JGroups configuration recommended on JBossCache-1.4.1). I think my problem is that I am using the old JGroups configuration for my ClusterPartition. I attach this configuration below. Can any one please look at the configuration and check what I must change to have it working with the jgroups.jar which comes with JBossCache 1.4.1?
          Thanks in advance.
          Regards,
          Victor Batista





          <!-- Name of the partition being built -->
          ${jboss.partition.name:DefaultPartition}

          <!-- The address used to determine the node name -->
          ${jboss.bind.address}

          <!-- Determine if deadlock detection is enabled -->
          False

          <!-- Max time (in ms) to wait for state transfer to complete. Increase for large states -->
          30000

          <!-- The JGroups protocol configuration -->

          <!--
          The default UDP stack:
          - If you have a multihomed machine, set the UDP protocol's bind_addr attribute to the
          appropriate NIC IP address, e.g bind_addr="192.168.0.2".
          - On Windows machines, because of the media sense feature being broken with multicast
          (even after disabling media sense) set the UDP protocol's loopback attribute to true
          -->

          <UDP mcast_addr="${jboss.partition.udpGroup:228.1.2.3}" mcast_port="55556"
          ip_ttl="8" ip_mcast="true"
          mcast_send_buf_size="800000" mcast_recv_buf_size="150000"
          ucast_send_buf_size="800000" ucast_recv_buf_size="150000"
          loopback="true"/>
          <PING timeout="2000" num_initial_members="3"
          up_thread="true" down_thread="true"/>
          <MERGE2 min_interval="10000" max_interval="20000"/>
          <FD shun="true" up_thread="true" down_thread="true"
          timeout="2500" max_tries="5"/>
          <VERIFY_SUSPECT timeout="3000" num_msgs="3"
          up_thread="true" down_thread="true"/>
          <pbcast.NAKACK gc_lag="50" retransmit_timeout="300,600,1200,2400,4800"
          max_xmit_size="8192"
          up_thread="true" down_thread="true"/>
          <UNICAST timeout="300,600,1200,2400,4800" window_size="100" min_threshold="10"
          down_thread="true"/>
          <pbcast.STABLE desired_avg_gossip="20000"
          up_thread="true" down_thread="true"/>
          <FRAG frag_size="8192"
          down_thread="true" up_thread="true"/>
          <pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
          shun="true" print_local_addr="true"/>
          <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>


          <!-- Alternate TCP stack: customize it for your environment, change bind_addr and initial_hosts -->
          <!--

          <TCP bind_addr="thishost" start_port="7800" loopback="true"/>
          <TCPPING initial_hosts="thishost[7800],otherhost[7800]" port_range="3" timeout="3500"
          num_initial_members="3" up_thread="true" down_thread="true"/>
          <MERGE2 min_interval="5000" max_interval="10000"/>
          <FD shun="true" timeout="2500" max_tries="5" up_thread="true" down_thread="true" />
          <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false" />
          <pbcast.NAKACK down_thread="true" up_thread="true" gc_lag="100"
          retransmit_timeout="3000"/>
          <pbcast.STABLE desired_avg_gossip="20000" down_thread="false" up_thread="false" />
          <pbcast.GMS join_timeout="5000" join_retry_timeout="2000" shun="false"
          print_local_addr="true" down_thread="true" up_thread="true"/>
          <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>

          -->

          jboss:service=Naming

          • 2. Re: java.io.StreamCorruptedException: invalid stream header
            Brian Stansberry Master

            Use of JGroups 2.4 or later with JBoss AS versions before 4.0.5.GA requires starting JBoss AS with -Djgroups.marshalling.compatible=true. See http://labs.jboss.com/portal/jbosscache/compatibility/index.html.