2015-07-10 62 views
1

我试图将Cassandra 2.1.0群集升级到2.1.8(最新版本)。Cassandra 2.1.8:节点拒绝在removeUnfinishedCompactionLeftovers中使用NPE启动

当我用2.1.8运行时启动第一个节点时,出现错误,节点拒绝启动。
这是错误的堆栈跟踪:

org.apache.cassandra.io.FSReadError: java.lang.NullPointerException 
at org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore.java:642) ~[apache-cassandra-2.1.8.jar:2.1.8] 
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:302) [apache-cassandra-2.1.8.jar:2.1.8] 
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:524) [apache-cassandra-2.1.8.jar:2.1.8] 
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:613) [apache-cassandra-2.1.8.jar:2.1.8] 
Caused by: java.lang.NullPointerException: null 
at org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore.java:634) ~[apache-cassandra-2.1.8.jar:2.1.8] 
    ... 3 common frames omitted 
FSReadError in Failed to remove unfinished compaction leftovers (file: /home/nudgeca2/datas/data/main/segment-97b5ba00571011e49a928bffe429b6b5/main-segment-ka-15432-Statistics.db). See log for details. 
at org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore.java:642) 
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:302) 
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:524) 
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:613) 
Caused by: java.lang.NullPointerException 
at org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore.java:634) 
    ... 3 more 
Exception encountered during startup: java.lang.NullPointerException 

的集群有7个节点,它原来在AWS上的Linux EC2实例。
我尝试升级的节点在nodetool耗尽后停止。
然后我试着回到2.1.0运行时,但现在我得到一个类似的错误。
我也尝试停止并启动另一个节点,一切正常,节点重新启动没有任何问题。

我试图触摸丢失的文件(因为它应该被删除,我认为它可能不需要特定的内容)。我还有两个其他文件,我也碰过同样的错误。最后,节点在尝试读取这些文件时进一步失败。

任何人有任何想法我应该做什么? 谢谢你的帮助。

回答

1

这个问题可能值得打开一个Jira,所以如果没有别的办法,他们可以抓住NPE并提供更好的错误信息。

它看起来像它试图打开:

文件:/home/nudgeca2/datas/data/main/segment-97b5ba00571011e49a928bffe429b6b5/main-segment-ka-15432-Statistics.db

这是可能的它正在尝试读取该文件,因为它找到了关联的数据文件:(/home/nudgeca2/datas/data/main/segment-97b5ba00571011e49a928bffe429b6b5/main-segment-ka-15432-Data.db)。该数据文件是否存在?我会试图将它移开,并看看它是否正确启动。

+0

谢谢你的建议。删除以main-segment-ka-15432为前缀的每个文件后,该节点已成功启动。 这个问题可能来自我将数据复制到测试集群的方式。 升级可能没有任何东西可以看到问题。但奇怪的是,节点首先启动没有任何问题。 所以这个问题对我来说似乎仍然很奇怪。 –