Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-4576

Error in non-upgraded node's log when upgrading another node to trunk

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 1.2.0
    • None
    • None
    • ubuntu, ccm cluster with dtests

    • Normal

    Description

      I'm upgrading a 2-node cluster from cassandra-1.1 to trunk. On node1 I flush, stop the node, upgrade it to trunk, and start it. The following error gets written once a second in the log for node2:

      ERROR [GossipStage:10] 2012-08-24 11:03:36,293 AbstractCassandraDaemon.java (line 134) Exception in thread Thread[GossipStage:10,5,main]
      java.lang.RuntimeException: java.net.UnknownHostException: addr is of illegal length
      	at org.apache.cassandra.gms.GossipDigestAckVerbHandler.doVerb(GossipDigestAckVerbHandler.java:89)
      	at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:59)
      	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:662)
      Caused by: java.net.UnknownHostException: addr is of illegal length
      	at java.net.InetAddress.getByAddress(InetAddress.java:935)
      	at java.net.InetAddress.getByAddress(InetAddress.java:1318)
      	at org.apache.cassandra.net.CompactEndpointSerializationHelper.deserialize(CompactEndpointSerializationHelper.java:39)
      	at org.apache.cassandra.gms.EndpointStatesSerializationHelper.deserialize(GossipDigestSynMessage.java:117)
      	at org.apache.cassandra.gms.GossipDigestAckMessageSerializer.deserialize(GossipDigestAckMessage.java:83)
      	at org.apache.cassandra.gms.GossipDigestAckMessageSerializer.deserialize(GossipDigestAckMessage.java:70)
      	at org.apache.cassandra.gms.GossipDigestAckVerbHandler.doVerb(GossipDigestAckVerbHandler.java:60)
      	... 4 more
      

      Here is the exact code I ran to produce the error:

      from dtest import Tester, debug
      
      FROM_VERSION = 'git:cassandra-1.1'
      TO_VERSION = 'git:trunk'
      
      class TestUpgradeOneNode(Tester):
      
          def upgrade_test(self):
              # Start a cluster
              cluster = self.cluster
              cluster.partitioner = 'org.apache.cassandra.dht.RandomPartitioner'
              cluster.set_cassandra_dir(cassandra_version=FROM_VERSION)
              cluster.populate(2).start()
              (node1, node2) = cluster.nodelist()
              node1.watch_log_for('Listening for thrift clients...')
              node2.watch_log_for('Listening for thrift clients...')
      
              # Bring one node down and upgrade it.
              node1.flush()
              node1.stop(wait_other_notice=True)
              node1.set_cassandra_dir(cassandra_version=TO_VERSION)
              node1.start(wait_other_notice=True)
              import pdb; pdb.set_trace()  # <-- pause here and tail -f the node2.logfilename()
      

      Attachments

        1. CASSANDRA-4576.patch
          3 kB
          Pavel Yaskevich

        Activity

          People

            xedin Pavel Yaskevich
            tpatterson Tyler Patterson
            Pavel Yaskevich
            Brandon Williams
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: