[ 
https://issues.apache.org/jira/browse/CASSANDRA-4195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13409613#comment-13409613
 ] 

Pavel Yaskevich commented on CASSANDRA-4195:
--------------------------------------------

bq. We need to support read/write ops in a mixed cluster. We don't need to 
support schema changes.

See my first comment, old nodes wouldn't be able to join the ring because they 
can't resolve the schema version correctly and as we can't know what is the 
difference between old/new schemas they wouldn't be able to properly handle 
read/write workloads. We can probably add special mechanism to the 1.0 that 
would ask for schema in Avro format if it detects that schema version is not a 
TimeUUID, load it and try to operate but that would require from uses to update 
their nodes to the latest 1.0 version before they can do upgrade to 1.1.
                
> error in log when upgrading multi-node cluster to 1.1
> -----------------------------------------------------
>
>                 Key: CASSANDRA-4195
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4195
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.0
>         Environment: ccm, dtest. Ubuntu
>            Reporter: Tyler Patterson
>            Assignee: Pavel Yaskevich
>
> I upgraded a cluster from 1.0.9 to 1.1.0. The following message shows up in 
> the logs for all but the first node.
> {code}
> ERROR [GossipStage:1] 2012-04-30 07:37:06,986 AbstractCassandraDaemon.java 
> (line 139) Fatal exception in thread Thread[GossipStage:1,5,main]
> java.lang.UnsupportedOperationException: Not a time-based UUID                
>   
>     at java.util.UUID.timestamp(UUID.java:331)                                
>   
>     at 
> org.apache.cassandra.service.MigrationManager.updateHighestKnown(MigrationManager.java:121)
>     at 
> org.apache.cassandra.service.MigrationManager.rectify(MigrationManager.java:99)
>     at 
> org.apache.cassandra.service.MigrationManager.onAlive(MigrationManager.java:83)
>     at org.apache.cassandra.gms.Gossiper.markAlive(Gossiper.java:806)         
>   
>     at 
> org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:849)
>     at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:908) 
>   
>     at 
> org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:62)
>     at 
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:59)
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>     at java.lang.Thread.run(Thread.java:679)
> {code}
> this dtest demonstrates the issue. It was added to the cassandra-dtest 
> repository as upgrade_to_11_test:
> {code}
> from dtest import Tester, debug 
> from tools import * 
>  
> class TestUpgradeTo1_1(Tester): 
>  
>     def upgrade_test(self): 
>         self.num_rows = 0 
>         cluster = self.cluster 
>  
>         # Forcing cluster version on purpose 
>         cluster.set_cassandra_dir(cassandra_version='1.0.9') 
>  
>         cluster.populate(3).start() 
>         time.sleep(1) 
>  
>         for node in cluster.nodelist():     
>             node.flush() 
>             time.sleep(.5) 
>             node.stop(wait_other_notice=True) 
>             node.set_cassandra_dir(cassandra_version='1.1.0') 
>             node.start(wait_other_notice=True) 
>             time.sleep(.5)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to