1
シングルノードの入門手順に従っており、それはcassandra-0.7beta2で正常に動作しました。カサンドラ-0.7rc1のために同じことをやろうとしているときしかし、それは次のスタックトレースを吐き出す:cassandra.bat throw java.io.IOException:LocationInfo-e -1の名前の変更に失敗しました。0.7rc1のData.db
INFO 20:21:37,771 Starting up server gossip INFO 20:21:37,786 switching in a fresh Memtable for LocationInfo at CommitLogContext(file='/var/lib /cassandra/commitlog\CommitLog-1290885697489.log', position=700) INFO 20:21:37,786 Enqueuing flush of [email protected](227 bytes, 4 operations) INFO 20:21:37,786 Writing [email protected](227 bytes, 4 operations) ERROR 20:21:38,161 Fatal exception in thread Thread[FlushWriter:1,5,main] java.io.IOError: java.io.IOException: rename failed of D:\var\lib\cassandra\data\system\LocationInfo-e-1-Data.db at org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:214) at org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:184) at org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:167) at org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:161) at org.apache.cassandra.db.Memtable.access$000(Memtable.java:49) at org.apache.cassandra.db.Memtable$1.runMayThrow(Memtable.java:174) at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) 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) Caused by: java.io.IOException: rename failed of D:\var\lib\cassandra\data\system\LocationInfo-e-1-Data.db at org.apache.cassandra.utils.FBUtilities.renameWithConfirm(FBUtilities.java:359) at org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:210) ... 12 more
誰かがカサンドラのmailing listでこの問題を掲載しました。 tmpファイルの名前を変更しようとすると問題が発生したようです(例:LocationInfo-tmp-e-1-Data.db)。 それはFBUtilities.javaで起こる:
public static void renameWithConfirm(String tmpFilename, String filename) throws IOException
{
if (!new File(tmpFilename).renameTo(new File(filename)))
{
throw new IOException("rename failed of " + filename);
}
}
私はFile.renameTo()がWindows上で面白い動作することが知られていることに注意してください。
とにかく...ヘルプ?