【问题标题】:Cassandra 2.1.8: Node refuses to start with NPE in removeUnfinishedCompactionLeftoversCassandra 2.1.8:节点拒绝在 removeUnfinishedCompactionLeftovers 中以 NPE 开始
【发布时间】:2015-07-11 11:35:44
【问题描述】:

我正在尝试将 Cassandra 2.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 运行时,但现在出现类似错误。
我还尝试停止并启动另一个节点,一切正常,节点重新启动没有任何问题。

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

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

【问题讨论】:

    标签: cassandra upgrade


    【解决方案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)。该数据文件存在吗?我很想把它移开,看看它是否能正常启动。

    【讨论】:

    • 感谢您的建议。删除所有以 main-segment-ka-15432 为前缀的文件后,节点成功启动。问题可能来自我将数据复制到测试集群的方式。升级可能没有任何问题。但奇怪的是节点第一次启动没有任何问题。所以这个问题对我来说仍然很奇怪。
    猜你喜欢
    • 2018-03-28
    • 2016-02-09
    • 1970-01-01
    • 2019-09-04
    • 2019-07-16
    • 2012-02-24
    • 1970-01-01
    • 2021-08-25
    • 2018-11-16
    相关资源
    最近更新 更多