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

Jonathan Ellis resolved CASSANDRA-2225.
---------------------------------------

       Resolution: Invalid
    Fix Version/s:     (was: 0.7.3)
         Assignee:     (was: Pavel Yaskevich)

> Cannot get columns from sstable generated by json2sstable
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-2225
>                 URL: https://issues.apache.org/jira/browse/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
>         Attachments: cassandra_sample_insert.py, 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 "cassandra_sample_insert.py", storing pairs of row keys and 
> super columns
>  "cassandra_sample_insert.py" 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)
> {quote}
>  ERROR 15:45:18,228 Fatal exception in thread Thread[ReadStage:2,5,main]
>  java.io.IOError: 
> org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid 
> column name length 0
>   at 
> org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:246)
>   at 
> org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:262)
>   at org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:1)
>   at 
> java.util.concurrent.ConcurrentSkipListMap.buildFromSorted(ConcurrentSkipListMap.java:1493)
>   at 
> java.util.concurrent.ConcurrentSkipListMap.<init>(ConcurrentSkipListMap.java:1443)
>   at 
> org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:366)
>   at 
> org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:1)
>   at 
> org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
>   at 
> org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:1)
>   at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
>   at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
>   at 
> org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:108)
>   at 
> org.apache.commons.collections.iterators.CollatingIterator.anyHasNext(CollatingIterator.java:364)
>   at 
> org.apache.commons.collections.iterators.CollatingIterator.hasNext(CollatingIterator.java:217)
>   at 
> org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:55)
>   at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
>   at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.collectReducedColumns(SliceQueryFilter.java:118)
>   at 
> org.apache.cassandra.db.filter.QueryFilter.collectCollatedColumns(QueryFilter.java:142)
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1290)
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1167)
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1095)
>   at org.apache.cassandra.db.Table.getRow(Table.java:384)
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:63)
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:473)
>   at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
>   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)
>  Caused by: org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: 
> invalid column name length 0
>   at 
> org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:68)
>   at 
> org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:242)
>   ... 28 more
> {quote}

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to