When multiple DataFileDirectory entries exist in config files for the same 
sstable can end up in different directories.
-----------------------------------------------------------------------------------------------------------------------

                 Key: CASSANDRA-730
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-730
             Project: Cassandra
          Issue Type: Bug
    Affects Versions: 0.5
            Reporter: Anthony Molinaro


I have a cluster of 8 cassandra nodes, each node has 3 disks and I have the 
following in my storage-conf.xml
  <DataFileDirectories>
      <DataFileDirectory>/var/lib/cassandra/data1</DataFileDirectory>
      <DataFileDirectory>/var/lib/cassandra/data2</DataFileDirectory>
      <DataFileDirectory>/var/lib/cassandra/data3</DataFileDirectory>
  </DataFileDirectories>
Upon adding a new node, setting AutoBootstrap to true and starting it, it 
seemed to start bootstrapping, but then
failed with the following exception.

java.io.IOException: rename failed of 
/var/lib/cassandra/data3/retarget/user_to_acctids-1-Index.db
java.io.IOError: java.io.IOException: rename failed of 
/var/lib/cassandra/data3/retarget/user_to_acctids-1-Index.db
        at org.apache.cassandra.io.SSTableWriter.rename(SSTableWriter.java:154)
        at 
org.apache.cassandra.io.SSTableWriter.renameAndOpen(SSTableWriter.java:161) 
        at 
org.apache.cassandra.io.Streaming$StreamCompletionHandler.onStreamCompletion(Streaming.java:301)
        at 
org.apache.cassandra.net.io.ContentStreamState.handleStreamCompletion(ContentStreamState.java:108)
        at 
org.apache.cassandra.net.io.ContentStreamState.read(ContentStreamState.java:90)
        at org.apache.cassandra.net.io.TcpReader.read(TcpReader.java:95)
        at 
org.apache.cassandra.net.TcpConnection$ReadWorkItem.run(TcpConnection.java:445)
        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: java.io.IOException: rename failed of 
/var/lib/cassandra/data3/retarget/user_to_acctids-1-Index.db
        at 
org.apache.cassandra.utils.FBUtilities.renameWithConfirm(FBUtilities.java:306)
        at org.apache.cassandra.io.SSTableWriter.rename(SSTableWriter.java:150)
        ... 9 more

Upon inspecting the directories I noticed the following

find /var/lib/cassandra -follow
/var/lib/cassandra
/var/lib/cassandra/data2
/var/lib/cassandra/data2/system
/var/lib/cassandra/data2/retarget
/var/lib/cassandra/data2/retarget/user_to_acctids-tmp-1-Filter.db
/var/lib/cassandra/.cassandra-placeholder
/var/lib/cassandra/data3
/var/lib/cassandra/data3/system
/var/lib/cassandra/data3/retarget
/var/lib/cassandra/data3/retarget/user_to_acctids-tmp-1-Data.db
/var/lib/cassandra/logs
/var/lib/cassandra/logs/system.log
/var/lib/cassandra/data1
/var/lib/cassandra/data1/system
/var/lib/cassandra/data1/retarget
/var/lib/cassandra/data1/retarget/user_to_acctids-tmp-1-Index.db
/var/lib/cassandra/commitlog
/var/lib/cassandra/commitlog/CommitLog-1264050238700.log

showing the sstable files were in different directories.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to