cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Muga Nishizawa (JIRA)" <>
Subject [jira] Created: (CASSANDRA-2225) Cannot get columns from sstable generated by json2sstable
Date Wed, 23 Feb 2011 09:37:38 GMT
Cannot get columns from sstable generated by json2sstable

                 Key: CASSANDRA-2225
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.7.2
         Environment: Fedora 11, Intel Core i5, JDK 1.6.0_20
            Reporter: Muga Nishizawa
             Fix For: 0.7.3
         Attachments:, create_table.cli

I cannot get columns on Cassandra that has sstable generated by json2sstable.  It returns
"null" as its result.  Columns that are associated to specified row keys are stored on Cassandra
in advance.  Cassandra outputs following exception to system.log.  

This Cassandra has sstable that was generated by json2sstable.  I stored data in Cassandra,
shut it down, then create JSON data from its sstable with sstable2json and I generate sstable
from JSON data with json2sstable in advance.  I could check that columns are included in JSON
data file.  But columns could not be acquired from the generated sstable.  This problem occurs
with or without using Pavel's patch on CASSANDRA-2188.  

I attached programs so that you can know detail of data stored in Cassandra.  You will be
able to reproduce this problem by executing attached programs, sstable2json and json2sstable.
 For example, I could not get columns associated to row key "030yyyyyyyyyy" from sstable generated
by json2sstable.  "null" will be returned as result.  Cassandra will output exception to system.log.

- 1. Start Cassandra daemon on localhost (number of thrift port is 9160)
- 2. Create keyspace and column family, according to "create_table.cli"
- 3. Execute "", storing pairs of row keys and super columns
 "" requires pycassa
- 4. Shutdown Cassandra daemon
- 5. Execute sstable2json and create JSON data
- 6. Execute json2sstable and generate sstable from JSON data
- 7. Start Cassandra daemon again
- 8. Get columns related to row key "030yyyyyyyyyy" (but, I could not get)

 ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main] org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid
column name length 0
  at java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(
  at java.util.concurrent.ConcurrentSkipListMap.<init>(
  at org.apache.cassandra.db.SuperColumnSerializer.deserialize(
  at org.apache.cassandra.db.SuperColumnSerializer.deserialize(
  at org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(
  at org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(
  at org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(
  at org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(
  at org.apache.commons.collections.iterators.CollatingIterator.hasNext(
  at org.apache.cassandra.utils.ReducingIterator.computeNext(
  at org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(
  at org.apache.cassandra.db.filter.QueryFilter.collectCollatedColumns(
  at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(
  at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(
  at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(
  at org.apache.cassandra.db.Table.getRow(
  at org.apache.cassandra.db.SliceFromReadCommand.getRow(
  at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(
  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
  at java.util.concurrent.ThreadPoolExecutor$
 Caused by: org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid column
name length 0
  at org.apache.cassandra.db.ColumnSerializer.deserialize(
  ... 28 more

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message