2015-07-10 49 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爲前綴的每個文件後,該節點已成功啓動。 這個問題可能來自我將數據複製到測試集羣的方式。 升級可能沒有任何東西可以看到問題。但奇怪的是,節點首先啓動沒有任何問題。 所以這個問題對我來說似乎仍然很奇怪。 –