Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-4031

Exceptions during inserting emtpy string as column value on indexed column

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: 1.1.0
    • Component/s: None
    • Labels:
      None

      Description

      Hi,
      I`m running one node cluster(issue occurs also on other cluster(which has 2 nodes)) on snapshot from cassandra-1.1 branch(i used 449e037195c3c504d7aca5088e8bc7bd5a50e7d0 commit).
      i have simple CF, definition of TestCF:

      [default@test_keyspace] describe Test_CF;
          ColumnFamily: Test_CF
            Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type
            Default column value validator: org.apache.cassandra.db.marshal.UTF8Type
            Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type
            GC grace seconds: 864000
            Compaction min/max thresholds: 4/32
            Read repair chance: 1.0
            DC Local Read repair chance: 0.0
            Replicate on write: true
            Caching: KEYS_ONLY
            Bloom Filter FP chance: default
            Built indexes: [Test_CF.Test_CF_test_index_idx]
            Column Metadata:
              Column Name: test_index
                Validation Class: org.apache.cassandra.db.marshal.UTF8Type
                Index Name: Test_CF_test_index_idx
                Index Type: KEYS
            Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
            Compression Options:
              sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
      

      I`m trying to add new row(log from cassandra-cli, note that there is index on test_index):

      [default@test_keyspace] list Test_CF;              
      Using default limit of 100
      
      0 Row Returned.
      Elapsed time: 31 msec(s).
      [default@test_keyspace] set Test_CF[absdsad3][test_index]='';
      null
      TimedOutException()
      	at org.apache.cassandra.thrift.Cassandra$insert_result.read(Cassandra.java:15906)
      	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
      	at org.apache.cassandra.thrift.Cassandra$Client.recv_insert(Cassandra.java:788)
      	at org.apache.cassandra.thrift.Cassandra$Client.insert(Cassandra.java:772)
      	at org.apache.cassandra.cli.CliClient.executeSet(CliClient.java:894)
      	at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:211)
      	at org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:219)
      	at org.apache.cassandra.cli.CliMain.main(CliMain.java:346)
      [default@test_keyspace] list Test_CF;                        
      Using default limit of 100
      -------------------
      RowKey: absdsad3
      => (column=test_index, value=, timestamp=1331298173009000)
      
      1 Row Returned.
      Elapsed time: 7 msec(s).
      

      Exception from system.log:

       INFO [FlushWriter:56] 2012-03-09 13:42:02,500 Memtable.java (line 291) Completed flushing /var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-hc-3251-Data.db (2077 bytes)
      ERROR [MutationStage:2291] 2012-03-09 13:42:22,232 AbstractCassandraDaemon.java (line 134) Exception in thread Thread[MutationStage:2291,5,main]
      java.lang.AssertionError
              at org.apache.cassandra.db.DecoratedKey.<init>(DecoratedKey.java:55)
              at org.apache.cassandra.db.index.SecondaryIndexManager.getIndexKeyFor(SecondaryIndexManager.java:294)
              at org.apache.cassandra.db.index.SecondaryIndexManager.applyIndexUpdates(SecondaryIndexManager.java:490)
              at org.apache.cassandra.db.Table.apply(Table.java:441)
              at org.apache.cassandra.db.Table.apply(Table.java:366)
              at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:275)
              at org.apache.cassandra.service.StorageProxy$6.runMayThrow(StorageProxy.java:446)
              at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1228)
              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)
      

        Attachments

        1. 4031.txt
          3 kB
          Yuki Morishita

          Activity

            People

            • Assignee:
              yukim Yuki Morishita
              Reporter:
              mdymarek Mariusz
              Reviewer:
              Jonathan Ellis
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: