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 E2CF7100A5 for ; Tue, 14 Jan 2014 21:25:28 +0000 (UTC) Received: (qmail 70207 invoked by uid 500); 14 Jan 2014 21:25:25 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 70160 invoked by uid 500); 14 Jan 2014 21:25:24 -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 70150 invoked by uid 99); 14 Jan 2014 21:25:24 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jan 2014 21:25:24 +0000 Date: Tue, 14 Jan 2014 21:25:24 +0000 (UTC) From: "Pavel Yaskevich (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-5202) CFs should have globally and temporally unique CF IDs to prevent "reusing" data from earlier incarnation of same CF name 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-5202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13871204#comment-13871204 ] Pavel Yaskevich commented on CASSANDRA-5202: -------------------------------------------- [~yukim] Looked at 1-4 patches, everything looks good but I have one question to clarify regarding #3 - we can do sstable.descriptor.equals(descriptor) now as "descriptor" would also have an absolute path because of the new "find" method, is that correct? > CFs should have globally and temporally unique CF IDs to prevent "reusing" data from earlier incarnation of same CF name > ------------------------------------------------------------------------------------------------------------------------ > > Key: CASSANDRA-5202 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5202 > Project: Cassandra > Issue Type: Bug > Components: Core > Affects Versions: 1.1.9 > Environment: OS: Windows 7, > Server: Cassandra 1.1.9 release drop > Client: astyanax 1.56.21, > JVM: Sun/Oracle JVM 64 bit (jdk1.6.0_27) > Reporter: Marat Bedretdinov > Assignee: Yuki Morishita > Labels: test > Fix For: 2.1 > > Attachments: 0001-make-2i-CFMetaData-have-parent-s-CF-ID.patch, 0002-Don-t-scrub-2i-CF-if-index-type-is-CUSTOM.patch, 0003-Fix-user-defined-compaction.patch, 0004-Fix-serialization-test.patch, 0005-Create-system_auth-tables-with-fixed-CFID.patch, 0005-auth-v2.txt, 5202.txt, astyanax-stress-driver.zip > > > Attached is a driver that sequentially: > 1. Drops keyspace > 2. Creates keyspace > 4. Creates 2 column families > 5. Seeds 1M rows with 100 columns > 6. Queries these 2 column families > The above steps are repeated 1000 times. > The following exception is observed at random (race - SEDA?): > ERROR [ReadStage:55] 2013-01-29 19:24:52,676 AbstractCassandraDaemon.java (line 135) Exception in thread Thread[ReadStage:55,5,main] > java.lang.AssertionError: DecoratedKey(-1, ) != DecoratedKey(62819832764241410631599989027761269388, 313a31) in C:\var\lib\cassandra\data\user_role_reverse_index\business_entity_role\user_role_reverse_index-business_entity_role-hf-1-Data.db > at org.apache.cassandra.db.columniterator.SSTableSliceIterator.(SSTableSliceIterator.java:60) > at org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:67) > at org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:79) > at org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:256) > at org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64) > at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1367) > at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1229) > at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1164) > at org.apache.cassandra.db.Table.getRow(Table.java:378) > at org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:69) > at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:822) > at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1271) > 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) > This exception appears in the server at the time of client submitting a query request (row slice) and not at the time data is seeded. The client times out and this data can no longer be queried as the same exception would always occur from there on. > Also on iteration 201, it appears that dropping column families failed and as a result their recreation failed with unique column family name violation (see exception below). Note that the data files are actually gone, so it appears that the server runtime responsible for creating column family was out of sync with the piece that dropped them: > Starting dropping column families > Dropped column families > Starting dropping keyspace > Dropped keyspace > Starting creating column families > Created column families > Starting seeding data > Total rows inserted: 1000000 in 5105 ms > Iteration: 200; Total running time for 1000 queries is 232; Average running time of 1000 queries is 0 ms > Starting dropping column families > Dropped column families > Starting dropping keyspace > Dropped keyspace > Starting creating column families > Created column families > Starting seeding data > Total rows inserted: 1000000 in 5361 ms > Iteration: 201; Total running time for 1000 queries is 222; Average running time of 1000 queries is 0 ms > Starting dropping column families > Starting creating column families > Exception in thread "main" com.netflix.astyanax.connectionpool.exceptions.BadRequestException: BadRequestException: [host=127.0.0.1(127.0.0.1):9160, latency=2468(2469), attempts=1]InvalidRequestException(why:Keyspace names must be case-insensitively unique ("user_role_reverse_index" conflicts with "user_role_reverse_index")) > at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:159) > at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:60) > at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:27) > at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$1.execute(ThriftSyncConnectionFactoryImpl.java:140) > at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:69) > at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:255) > at com.netflix.astyanax.thrift.ThriftKeyspaceImpl.createKeyspace(ThriftKeyspaceImpl.java:569) > at com.nuance.mca.astyanax.App.recreateKeyspaceSchema(App.java:139) > at com.nuance.mca.astyanax.App.main(App.java:88) > Caused by: InvalidRequestException(why:Keyspace names must be case-insensitively unique ("user_role_reverse_index" conflicts with "user_role_reverse_index")) > at org.apache.cassandra.thrift.Cassandra$system_add_keyspace_result.read(Cassandra.java:30010) > at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78) > at org.apache.cassandra.thrift.Cassandra$Client.recv_system_add_keyspace(Cassandra.java:1285) > at org.apache.cassandra.thrift.Cassandra$Client.system_add_keyspace(Cassandra.java:1272) > at com.netflix.astyanax.thrift.ThriftKeyspaceImpl$14.internalExecute(ThriftKeyspaceImpl.java:584) > at com.netflix.astyanax.thrift.ThriftKeyspaceImpl$14.internalExecute(ThriftKeyspaceImpl.java:572) > at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:55) > ... 7 more -- This message was sent by Atlassian JIRA (v6.1.5#6160)