Hi,

Have anyone used compressed hints in Cassandra 3.0? or are we the only ones that do this?

If you use compressed hints have ever seen that sending the hints fails and you get this exception in the log:

2018-04-04T13:27:48.948+0200 ERROR [HintsDispatcher:14] 
CassandraDaemon.java:207 Exception in threadThread[HintsDispatcher:14,1,main]
java.lang.IllegalArgumentException: Unable to seek to position 1789149057 in 
/var/lib/cassandra/hints/9592c860-1054-4c60-b3b8-faa9adc6d769-1522838912649-1.hints
 (118259682 bytes) in read-only mode
        at 
org.apache.cassandra.io.util.RandomAccessReader.seek(RandomAccessReader.java:287)
 ~[apache-cassandra-clientutil-3.0.15.jar:3.0.15]
        at org.apache.cassandra.hints.HintsReader.seek(HintsReader.java:114) 
~[apache-cassandra-3.0.15.jar:3.0.15]
        at 
org.apache.cassandra.hints.HintsDispatcher.seek(HintsDispatcher.java:83) 
~[apache-cassandra-3.0.15.jar:3.0.15]
        at 
org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.deliver(HintsDispatchExecutor.java:263)
 ~[apache-cassandra-3.0.15.jar:3.0.15]
        at 
org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:248)
 ~[apache-cassandra-3.0.15.jar:3.0.15]
        at 
org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:226)
 ~[apache-cassandra-3.0.15.jar:3.0.15]
        at 
org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.run(HintsDispatchExecutor.java:205)
 ~[apache-cassandra-3.0.15.jar:3.0.15]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
~[na:1.8.0_152]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
~[na:1.8.0_152]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
~[na:1.8.0_152]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[na:1.8.0_152]
        at 
org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:79)
 [apache-cassandra-3.0.15.jar:3.0.15]
        at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_152]

I reported this problem inCASSANDRA-14419 
<https://issues.apache.org/jira/browse/CASSANDRA-14419>, the problem is that 
when transmission if hint files are interrupted and when the transmission should be 
resumed Cassandra try seek to the last known position
in the hints file it might seek beyond the end of the file. A similar problem 
existed in Cassandra 3.x but was fixed on the branch. I have proposed a patch 
to fix this in 3.0, its very similar to the one
for 3.x, but I wonder if anyone else has seen this? Maybe you could help me 
verify my patch.

Regards,
/Tommy

Reply via email to