Cassandra 2.1.8:节点拒绝在RemoveUnfinishedCompaction剩菜中使用NPE启动

Cassandra 2.1.8:节点拒绝在RemoveUnfinishedCompaction剩菜中使用NPE启动,cassandra,upgrade,Cassandra,Upgrade,我正在尝试将Cassandra2.1.0集群升级到2.1.8(最新版本) 当我使用2.1.8运行时启动第一个节点时,出现错误,该节点拒绝启动。 这是错误的堆栈跟踪: org.apache.cassandra.io.FSReadError: java.lang.NullPointerException at org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore

我正在尝试将Cassandra2.1.0集群升级到2.1.8(最新版本)

当我使用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运行时,但现在我得到了一个类似的错误。
我还尝试停止和启动另一个节点,一切正常,节点重新启动没有任何问题

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

有人知道我该怎么做吗?
感谢您的帮助。

为该问题打开Jira可能是值得的,因此,如果没有其他问题,他们可以捕获NPE并提供更好的错误消息

看起来它正在尝试打开:

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


它可能试图读取该文件,因为它找到了关联的数据文件:(/home/nudgeca2/datas/data/main/segment-97b5ba00571011e49a928bffe429b6b5/main-segment-ka-15432-data.db)。那个数据文件存在吗?我很想把它移开,看看它是否能正常启动。

谢谢你的建议。删除以main-segment-ka-15432为前缀的所有文件后,节点成功启动。问题可能来自我将数据复制到测试集群的方式。升级可能没有看到与此问题有关的任何内容。但奇怪的是,节点第一次启动时没有任何问题。所以这个问题在我看来还是很奇怪。