Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D6EEE47F8 for ; Mon, 23 May 2011 18:49:28 +0000 (UTC) Received: (qmail 77414 invoked by uid 500); 23 May 2011 18:49:28 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 77388 invoked by uid 500); 23 May 2011 18:49:28 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 77380 invoked by uid 99); 23 May 2011 18:49:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 May 2011 18:49:28 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 May 2011 18:49:27 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 8A917D9E77 for ; Mon, 23 May 2011 18:48:47 +0000 (UTC) Date: Mon, 23 May 2011 18:48:47 +0000 (UTC) From: "Jon Hermes (JIRA)" To: commits@cassandra.apache.org Message-ID: <162272123.36904.1306176527564.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <254466273.31932.1305925067501.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (CASSANDRA-2678) Incorrect NetworkTopolgyStrategy Options on upgrade from 0.7.5 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-2678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13038130#comment-13038130 ] Jon Hermes commented on CASSANDRA-2678: --------------------------------------- bq. As above, it can't (since it is an int not an Integer), but it can be "unset." I meant the null that we pass in line 55 because it was 'unset'. I agree with the latter choice. We could doubly validate here and catch the error just a _little_ bit faster than waiting for the class to validate, but it's not a big deal. Assuming the duplicate code was removed, +1. > Incorrect NetworkTopolgyStrategy Options on upgrade from 0.7.5 > -------------------------------------------------------------- > > Key: CASSANDRA-2678 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2678 > Project: Cassandra > Issue Type: Bug > Components: Core > Affects Versions: 0.8.0 beta 2 > Environment: 10 node cluster, RHELL6.0 > 0.7.5, Single DC using NTS and RF=3 (DC1:3) -> upgraded to 0.8.0-rc1. > Reporter: Chris Trahman > Assignee: Jonathan Ellis > Priority: Minor > Fix For: 0.8.0 > > Attachments: 2678-v2.txt, 2678.txt > > > After an upgrade from 0.7.5 to 0.8.0-rc1 on a 10 node, single DC ring configured with NTS, operations fail due to an inability to reach replicas in the 'second datacenter': > ERROR [pool-2-thread-8] 2011-05-17 12:15:23,145 Cassandra.java (line 3294) Internal error processing insert > java.lang.IllegalStateException: datacenter (replication_factor) has no more endpoints, (3) replicas still needed > at org.apache.cassandra.locator.NetworkTopologyStrategy.calculateNaturalEndpoints(NetworkTopologyStrategy.java:118) > at org.apache.cassandra.locator.AbstractReplicationStrategy.getNaturalEndpoints(AbstractReplicationStrategy.java:100) > at org.apache.cassandra.service.StorageService.getNaturalEndpoints(StorageService.java:1611) > at org.apache.cassandra.service.StorageService.getNaturalEndpoints(StorageService.java:1599) > at org.apache.cassandra.service.StorageProxy.getWriteEndpoints(StorageProxy.java:217) > at org.apache.cassandra.service.StorageProxy.performWrite(StorageProxy.java:202) > at org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:154) > at org.apache.cassandra.thrift.CassandraServer.doInsert(CassandraServer.java:557) > at org.apache.cassandra.thrift.CassandraServer.internal_insert(CassandraServer.java:434) > at org.apache.cassandra.thrift.CassandraServer.insert(CassandraServer.java:442) > at org.apache.cassandra.thrift.Cassandra$Processor$insert.process(Cassandra.java:3286) > at org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2889) > at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:187) > 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:636) > DEBUG [ScheduledTasks:1] 2011-05-17 12:15:33,975 StorageLoadBalancer.java (line 334) Disseminating load info ... > On checking the keyspace definition with cassandra-cli, it appears that 0.8.0-rc1 considered the 'replication_factor:3' configuration in the older version as a DC name in part of the DC replication strategy: > Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy > Options: [replication_factor:3, DC1:3] > I attempted to remove replication_factor as a DC using the 'update keyspace' command, but it would persist. I was able to remove the DC1:3 and use: > update keyspace MyKeyspace with strategy_options=[{replication_factor:3}]; > then changed the topology properties file, renamed DC1 to replication_factor, and it worked - so there is a workaround. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira