Cassandra 卡桑德拉暗示切换消息错误

Cassandra 卡桑德拉暗示切换消息错误,cassandra,cassandra-2.1,Cassandra,Cassandra 2.1,这是一个7节点的Cassandra 2.1.15集群。我在一个节点上每10分钟收到一条错误消息: ERROR [HintedHandoff:83] 2016-12-20 09:49:25,906 CassandraDaemon.java:231 - Exception in thread Thread[HintedHandoff:83,1,main] java.lang.AssertionError: null at org.apache.cassandra.net.WriteCallb

这是一个7节点的Cassandra 2.1.15集群。我在一个节点上每10分钟收到一条错误消息:

ERROR [HintedHandoff:83] 2016-12-20 09:49:25,906 CassandraDaemon.java:231 - Exception in thread Thread[HintedHandoff:83,1,main]
java.lang.AssertionError: null
    at org.apache.cassandra.net.WriteCallbackInfo.<init>(WriteCallbackInfo.java:49) ~[apache-cassandra-2.1.15.jar:2.1.15]
    at org.apache.cassandra.net.MessagingService.addCallback(MessagingService.java:608) ~[apache-cassandra-2.1.15.jar:2.1.15]
    at org.apache.cassandra.net.MessagingService.sendRR(MessagingService.java:668) ~[apache-cassandra-2.1.15.jar:2.1.15]
    at org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:474) ~[apache-cassandra-2.1.15.jar:2.1.15]
    at org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:354) ~[apache-cassandra-2.1.15.jar:2.1.15]
    at org.apache.cassandra.db.HintedHandOffManager.access$400(HintedHandOffManager.java:93) ~[apache-cassandra-2.1.15.jar:2.1.15]
    at org.apache.cassandra.db.HintedHandOffManager$5.run(HintedHandOffManager.java:565) ~[apache-cassandra-2.1.15.jar:2.1.15]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_73]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_73]
    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_73]
ERROR[HintedHandoff:83]2016-12-20 09:49:25906 cassandrademon.java:231-线程中出现异常[HintedHandoff:83,1,main]
java.lang.AssertionError:null
在org.apache.cassandra.net.WriteCallbackInfo.(WriteCallbackInfo.java:49)~[apache-cassandra-2.1.15.jar:2.1.15]
在org.apache.cassandra.net.MessagingService.addCallback(MessagingService.java:608)~[apache-cassandra-2.1.15.jar:2.1.15]
在org.apache.cassandra.net.MessagingService.sendRR(MessagingService.java:668)~[apache-cassandra-2.1.15.jar:2.1.15]
在org.apache.cassandra.db.HintedHandOffManager.doDeliverHintsToEndpoint(HintedHandOffManager.java:474)~[apache-cassandra-2.1.15.jar:2.1.15]
在org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:354)~[apache-cassandra-2.1.15.jar:2.1.15]
在org.apache.cassandra.db.HintedHandOffManager.access$400(HintedHandOffManager.java:93)~[apache-cassandra-2.1.15.jar:2.1.15]
在org.apache.cassandra.db.HintedHandOffManager$5.run(HintedHandOffManager.java:565)~[apache-cassandra-2.1.15.jar:2.1.15]
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)~[na:1.8.073]
在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)~[na:1.8.073]
在java.lang.Thread.run(Thread.java:745)~[na:1.8.0_73]
我试图重新启动de节点,但消息仍然出现。 我还尝试暂时禁用提示切换,但消息仍会显示(即使在禁用时)

失败的断言似乎是试图向自己发送信息:

是什么原因造成的?我如何修复

编辑:我只看到表
系统中有行。提示有问题的节点上的
目标id
就是节点本身。
我认为删除这些行可以解决这个问题。现在的问题是:我能安全地这样做吗?

我找到了解决方案。事实上,有一个
nodetool
命令可以删除挂起的提示:
truncatehints

问题已经解决了。然而,我不知道这些提示是如何保存下来的