You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Dave Brosius (JIRA)" <ji...@apache.org> on 2013/05/22 08:55:22 UTC

[jira] [Commented] (CASSANDRA-5587) BulkLoader fails with NoSuchElementException

    [ https://issues.apache.org/jira/browse/CASSANDRA-5587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13663866#comment-13663866 ] 

Dave Brosius commented on CASSANDRA-5587:
-----------------------------------------

the SSTableLoader.openSSTables filenameFilter could immediately ignore directories before even trying SSTable.tryComponentFromFilename. as well.

ie

if (new File(dir, name).isDirectory()) return false;
                
> BulkLoader fails with NoSuchElementException
> --------------------------------------------
>
>                 Key: CASSANDRA-5587
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5587
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 1.2.4, 1.2.5
>            Reporter: Julien Aymé
>              Labels: patch
>         Attachments: cassandra-1.2-5587.txt
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> When using BulkLoader tool (sstableloader command) to transfer data from a cluster to another, 
> a java.util.NoSuchElementException is thrown whenever the directory contains a "snapshot" sub directory,
> and the bulk load fails.
> The fix should be quite simple:
> Catch any NoSuchElementException thrown in {{SSTableLoader#openSSTables()}}
> The directory structure:
> {noformat}
> user@cassandrasrv01:~$ ls /var/lib/cassandra/data/Keyspace1/CF1/
> Keyspace1-CF1-ib-1872-CompressionInfo.db
> Keyspace1-CF1-ib-1872-Data.db
> Keyspace1-CF1-ib-1872-Filter.db
> Keyspace1-CF1-ib-1872-Index.db
> Keyspace1-CF1-ib-1872-Statistics.db
> Keyspace1-CF1-ib-1872-Summary.db
> Keyspace1-CF1-ib-1872-TOC.txt
> Keyspace1-CF1-ib-2166-CompressionInfo.db
> Keyspace1-CF1-ib-2166-Data.db
> Keyspace1-CF1-ib-2166-Filter.db
> Keyspace1-CF1-ib-2166-Index.db
> Keyspace1-CF1-ib-2166-Statistics.db
> Keyspace1-CF1-ib-2166-Summary.db
> Keyspace1-CF1-ib-2166-TOC.txt
> Keyspace1-CF1-ib-5-CompressionInfo.db
> Keyspace1-CF1-ib-5-Data.db
> Keyspace1-CF1-ib-5-Filter.db
> Keyspace1-CF1-ib-5-Index.db
> Keyspace1-CF1-ib-5-Statistics.db
> Keyspace1-CF1-ib-5-Summary.db
> Keyspace1-CF1-ib-5-TOC.txt
> ...
> snapshots
> {noformat}
> The stacktrace: 
> {noformat}
> user@cassandrasrv01:~$ ./cassandra/bin/sstableloader -v --debug -d cassandrabck01 /var/lib/cassandra/data/Keyspace1/CF1/
> null
> java.util.NoSuchElementException
>         at java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
>         at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:265)
>         at org.apache.cassandra.io.sstable.Component.fromFilename(Component.java:122)
>         at org.apache.cassandra.io.sstable.SSTable.tryComponentFromFilename(SSTable.java:194)
>         at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:71)
>         at java.io.File.list(File.java:1087)
>         at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:67)
>         at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:119)
>         at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:67)
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira