Hmm, interesting. You're right that it's a bug; those two are supposed to be equivalent.
On Thu, Dec 30, 2010 at 4:02 PM, Thor Carpenter <tcarpen...@mediosystems.com> wrote: > So, I found a solution, but I think there is a (trivial) bug. > > The broken keyspace: > > create keyspace KeyspaceDC1 with > replication_factor = 1 and > placement_strategy = > 'org.apache.cassandra.locator.NetworkTopologyStrategy' and > strategy_options = [{DC1:1, DC2:0}]; > > The fixed keyspace: > > create keyspace KeyspaceDC1 with > replication_factor = 1 and > placement_strategy = > 'org.apache.cassandra.locator.NetworkTopologyStrategy' and > strategy_options = [{DC1:1}]; > > I'm not sure if the issue is that there are no nodes in DC2 or that I'm > saying DC2 shouldn't get any replicas, or a combination of the two. If I > get time I'll try to poke around the code base. > > -Thor > > On Dec 29, 2010, at 12:38 PM, Thor Carpenter wrote: > > In an attempt to replicate this error on a simpler system I have come across > a different error but seemingly related problem. Now I am getting the > following exception in system.log. > > DEBUG [pool-1-thread-3] 2010-12-29 12:10:38,897 CassandraServer.java (line > 362) insert > ERROR [pool-1-thread-3] 2010-12-29 12:10:38,906 Cassandra.java (line 2960) > Internal error processing insert > java.lang.AssertionError > at > org.apache.cassandra.locator.TokenMetadata.firstTokenIndex(TokenMetadata.java:392) > at > org.apache.cassandra.locator.TokenMetadata.ringIterator(TokenMetadata.java:417) > at > org.apache.cassandra.locator.NetworkTopologyStrategy.calculateNaturalEndpoints(NetworkTopologyStrategy.java:95) > at > org.apache.cassandra.locator.AbstractReplicationStrategy.getNaturalEndpoints(AbstractReplicationStrategy.java:99) > at > org.apache.cassandra.service.StorageService.getNaturalEndpoints(StorageService.java:1411) > at > org.apache.cassandra.service.StorageService.getNaturalEndpoints(StorageService.java:1394) > at > org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:109) > at > org.apache.cassandra.thrift.CassandraServer.doInsert(CassandraServer.java:442) > at > org.apache.cassandra.thrift.CassandraServer.insert(CassandraServer.java:379) > at > org.apache.cassandra.thrift.Cassandra$Processor$insert.process(Cassandra.java:2952) > at > org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2555) > at > org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:167) > 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:619) > > Looking at TokenMetadata.java:392, the assert that is triggered is: > assert ring.size() > 0; > > Which led me to run nodetool ring which outputs a seemingly correct config: > -sh-3.2$ nodetool -h localhost -p 8080 ring > Address Status State Load Owns Token > 10.5.64.26 Up Normal 47.16 KB 100.00% 1 > > > To reproduce: > > * I have upgraded to 0.7RC3 so install the latest riptano 0.7rc3 rpm on a > single node in "DC1". > > * In cassandra.yaml set initial_token = 1 > > * cassandra-topology.properties: > > 10.5.64.26=DC1:R1 > default=DC2:R1 > > * Schema loaded via cassandra-cli: > > create keyspace KeyspaceDC1 with > replication_factor = 1 and > placement_strategy = > 'org.apache.cassandra.locator.NetworkTopologyStrategy' and > strategy_options = [{DC1:1, DC2:0}]; > > use KeyspaceDC1; > > create column family TestCF with > column_type = 'Standard' and > comparator = 'BytesType' and > keys_cached = 200000 and > rows_cached = 2000 and > gc_grace = 0 and > read_repair_chance = 0.0; > > * In cassandra-cli execute the following: > > [defa...@unknown] use KeyspaceDC1; > Authenticated to keyspace: KeyspaceDC1 > [defa...@keyspacedc1] set TestCF['some key']['some col'] = 'some value'; > Internal error processing insert > > * Check system.log where you should find the above assertion error. > > > Can anybody find a flaw in this setup? Do others agree something looks > buggy? > > Thanks, > -Thor > > On Dec 28, 2010, at 4:33 PM, Thor Carpenter wrote: > > Third try for good luck. Maybe this time I'll get it all in one email. :-) > > At time 15:55 I performed a write with CL = ONE, a subsequent read with CL = > ONE and received correct results. Similar results occur with any read CL > other than LOCAL_QUORUM. > > At time 15:58 I performed a write with CL = ONE, a subsequent read with CL = > LOCAL_QUORUM and received a TimedOutException. > > System.log and cassandra.log are from server dlc05-sea to corresponds with > the hector error message "Closing client > CassandraClient<dlc05-sea:9160-50>". I haven't found anything in the logs > that indicates the problem but maybe others with more discerning eyes can. > > Please let me know if I can provide any additional information. > > Thanks, > -Thor > > <logs.zip><ATT00001..txt> > > > -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of Riptano, the source for professional Cassandra support http://riptano.com