cassandra.bat抛出java.io.IOException:在0.7rc1中重命名LocationInfo-e -1-Data.db失败
我已经按照单节点的入门说明进行操作,它在cassandra-0.7beta2中运行良好。但是当尝试为cassandra-0.7rc1做同样的事情时,它会喷出以下堆栈跟踪:
INFO 20:21:37,771启动服务器八卦
INFO 20:21:37,786在CommitLogContext(file ='/ var / lib)中切换一个新的Memtable for LocationInfo
/cassandra/commitlogCommitLog-1290885697489.log',position = 700)
INFO 20:21:37,786排队Memtable-LocationInfo @ 29247351(227字节,4个操作)
INFO 20:21:37,786编写Memtable-LocationInfo @ 29247351(227字节,4个操作)
ERROR 20:21:38,161线程中的致命异常线程[FlushWriter:1,5,main]
java.io.IOError:java.io.IOException:重命名为D: var lib cassandra data system LocationInfo-e-1-Data.db失败
在org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:214)
在org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:184)
在org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:167)
在org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:161)
在org.apache.cassandra.db.Memtable.access $ 000(Memtable.java:49)
在org.apache.cassandra.db.Memtable $ 1.runMayThrow(Memtable.java:174)
在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)
在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)
在java.lang.Thread.run(Thread.java:662)
引起:java.io.IOException:重命名D: var lib cassandra data system LocationInfo-e-1-Data.db失败
在org.apache.cassandra.utils.FBUtilities.renameWithConfirm(FBUtilities.java:359)
在org.apache.cassandra.io.sstable.SSTableWriter.rename(SSTableWriter.java:210)
......还有12个
有人在cassandra的邮件列表上发布了这个问题。
在尝试重命名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上工作很有趣。
无论如何......救命?
没有找到相关结果
已邀请:
1 个回复
浅镁