[ 
https://issues.apache.org/jira/browse/CASSANDRA-5202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yuki Morishita updated CASSANDRA-5202:
--------------------------------------

    Attachment:     (was: 5202-1.1.txt)

> 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: 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.<init>(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)

Reply via email to