[jira] [Commented] (CASSANDRA-14215) Cassandra does not seem to be respecting max hint window

2018-02-24 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-14215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16375765#comment-16375765
 ] 

Arijit commented on CASSANDRA-14215:


Just to confirm [~KurtG], will the fix that you are working on also make it to 
the 3.0 branch?

> Cassandra does not seem to be respecting max hint window
> 
>
> Key: CASSANDRA-14215
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14215
> Project: Cassandra
>  Issue Type: Bug
>  Components: Hints, Streaming and Messaging
>Reporter: Arijit
>Assignee: Kurt Greaves
>Priority: Major
>
> On Cassandra 3.0.9, it was observed that Cassandra continues to write hints 
> even though a node remains down (and does not come up) for longer than the 
> default 3 hour window.
>  
> After doing "nodetool setlogginglevel org.apache.cassandra TRACE", we see the 
> following log line in cassandra (debug) logs:
>  StorageProxy.java:2625 - Adding hints for [/10.0.100.84]
>  
> One possible code path seems to be:
> cas -> commitPaxos(proposal, consistencyForCommit, true); -> submitHint (in 
> StorageProxy.java)
>  
> The "true" parameter above explicitly states that a hint should be recorded 
> and ignores the time window calculation performed by the shouldHint method 
> invoked in other code paths. Is there a reason for this behavior?
>  
> Edit: There are actually two stacks that seem to be producing hints, the 
> "cas" and "syncWriteBatchedMutations" methods. I have posted them below.
>  
> A third issue seems to be that Cassandra seems to reset the timer which 
> counts how long a node has been down after a restart. Thus if Cassandra is 
> restarted on a good node, it continues to accumulate hints for a down node 
> over the next three hours.
>  
> WARN [SharedPool-Worker-14] 2018-02-06 22:15:51,136 StorageProxy.java:2636 - 
> Adding hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
> org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2603) 
> at 
> org.apache.cassandra.service.StorageProxy.commitPaxos(StorageProxy.java:540) 
> at org.apache.cassandra.service.StorageProxy.cas(StorageProxy.java:282) at 
> org.apache.cassandra.cql3.statements.ModificationStatement.executeWithCondition(ModificationStatement.java:432)
>  at 
> org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:407)
>  at 
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
>  at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) 
> at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) 
> at 
> org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
>  at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
>  at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32)
>  at 
> io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
>  at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) at 
> java.lang.Thread.run(Thread.java:748) WARN
>  
>  
> [SharedPool-Worker-8] 2018-02-06 22:15:51,153 StorageProxy.java:2636 - Adding 
> hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
> org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) 
> at 
> org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints(StorageProxy.java:1247)
>  at 
> org.apache.cassandra.service.StorageProxy.syncWriteBatchedMutations(StorageProxy.java:1014)
>  at 
> org.apache.cassandra.service.StorageProxy.mutateAtomically(StorageProxy.java:899)
>  at 
> org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:834)
>  at 
> org.apache.cassandra.cql3.statements.BatchStatement.executeWithoutConditions(BatchStatement.java:365)
>  at 
> org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:343)
>  at 
> 

[jira] [Commented] (CASSANDRA-14215) Cassandra does not seem to be respecting max hint window

2018-02-07 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-14215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16356275#comment-16356275
 ] 

Arijit commented on CASSANDRA-14215:


Thanks [~KurtG]. Yes that's the main issue, we're storing hints beyond the hint 
window.

About the Cassandra restarts, I meant restarts on the *live node* and not on 
the *dead node* also end up resetting the timer. Though the point you mentioned 
is valid as well.

> Cassandra does not seem to be respecting max hint window
> 
>
> Key: CASSANDRA-14215
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14215
> Project: Cassandra
>  Issue Type: Bug
>  Components: Hints, Streaming and Messaging
>Reporter: Arijit
>Priority: Major
>
> On Cassandra 3.0.9, it was observed that Cassandra continues to write hints 
> even though a node remains down (and does not come up) for longer than the 
> default 3 hour window.
>  
> After doing "nodetool setlogginglevel org.apache.cassandra TRACE", we see the 
> following log line in cassandra (debug) logs:
>  StorageProxy.java:2625 - Adding hints for [/10.0.100.84]
>  
> One possible code path seems to be:
> cas -> commitPaxos(proposal, consistencyForCommit, true); -> submitHint (in 
> StorageProxy.java)
>  
> The "true" parameter above explicitly states that a hint should be recorded 
> and ignores the time window calculation performed by the shouldHint method 
> invoked in other code paths. Is there a reason for this behavior?
>  
> Edit: There are actually two stacks that seem to be producing hints, the 
> "cas" and "syncWriteBatchedMutations" methods. I have posted them below.
>  
> A third issue seems to be that Cassandra seems to reset the timer which 
> counts how long a node has been down after a restart. Thus if Cassandra is 
> restarted on a good node, it continues to accumulate hints for a down node 
> over the next three hours.
>  
> WARN [SharedPool-Worker-14] 2018-02-06 22:15:51,136 StorageProxy.java:2636 - 
> Adding hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
> org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2603) 
> at 
> org.apache.cassandra.service.StorageProxy.commitPaxos(StorageProxy.java:540) 
> at org.apache.cassandra.service.StorageProxy.cas(StorageProxy.java:282) at 
> org.apache.cassandra.cql3.statements.ModificationStatement.executeWithCondition(ModificationStatement.java:432)
>  at 
> org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:407)
>  at 
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
>  at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) 
> at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) 
> at 
> org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
>  at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
>  at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32)
>  at 
> io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
>  at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) at 
> java.lang.Thread.run(Thread.java:748) WARN
>  
>  
> [SharedPool-Worker-8] 2018-02-06 22:15:51,153 StorageProxy.java:2636 - Adding 
> hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
> org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) 
> at 
> org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints(StorageProxy.java:1247)
>  at 
> org.apache.cassandra.service.StorageProxy.syncWriteBatchedMutations(StorageProxy.java:1014)
>  at 
> org.apache.cassandra.service.StorageProxy.mutateAtomically(StorageProxy.java:899)
>  at 
> org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:834)
>  at 
> org.apache.cassandra.cql3.statements.BatchStatement.executeWithoutConditions(BatchStatement.java:365)
>  at 
> 

[jira] [Commented] (CASSANDRA-14215) Cassandra does not seem to be respecting max hint window

2018-02-06 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-14215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16354723#comment-16354723
 ] 

Arijit commented on CASSANDRA-14215:


[~jjirsa] Is Hint.isLive a bit orthogonal to this, it seems to be dealing with 
gc grace period?

Also hints *are not written* in some code paths once the node is observed to be 
down for more than the window. Also the documentation around hints explicitly 
says that hints will not *be generated* when a node is down or longer than the 
window.

Finally, check out the bit around the node down timer being reset on Cassandra 
restarts. This does not matter if we are ok with generating hints beyond the 
max hint window, but I really don't think that we should be...

 

> Cassandra does not seem to be respecting max hint window
> 
>
> Key: CASSANDRA-14215
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14215
> Project: Cassandra
>  Issue Type: Bug
>  Components: Hints, Streaming and Messaging
>Reporter: Arijit
>Priority: Major
>
> On Cassandra 3.0.9, it was observed that Cassandra continues to write hints 
> even though a node remains down (and does not come up) for longer than the 
> default 3 hour window.
>  
> After doing "nodetool setlogginglevel org.apache.cassandra TRACE", we see the 
> following log line in cassandra (debug) logs:
>  StorageProxy.java:2625 - Adding hints for [/10.0.100.84]
>  
> One possible code path seems to be:
> cas -> commitPaxos(proposal, consistencyForCommit, true); -> submitHint (in 
> StorageProxy.java)
>  
> The "true" parameter above explicitly states that a hint should be recorded 
> and ignores the time window calculation performed by the shouldHint method 
> invoked in other code paths. Is there a reason for this behavior?
>  
> Edit: There are actually two stacks that seem to be producing hints, the 
> "cas" and "syncWriteBatchedMutations" methods. I have posted them below.
>  
> A third issue seems to be that Cassandra seems to reset the timer which 
> counts how long a node has been down after a restart. Thus if Cassandra is 
> restarted on a good node, it continues to accumulate hints for a down node 
> over the next three hours.
>  
> WARN [SharedPool-Worker-14] 2018-02-06 22:15:51,136 StorageProxy.java:2636 - 
> Adding hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
> org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2603) 
> at 
> org.apache.cassandra.service.StorageProxy.commitPaxos(StorageProxy.java:540) 
> at org.apache.cassandra.service.StorageProxy.cas(StorageProxy.java:282) at 
> org.apache.cassandra.cql3.statements.ModificationStatement.executeWithCondition(ModificationStatement.java:432)
>  at 
> org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:407)
>  at 
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
>  at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) 
> at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) 
> at 
> org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
>  at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
>  at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32)
>  at 
> io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
>  at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) at 
> java.lang.Thread.run(Thread.java:748) WARN
>  
>  
> [SharedPool-Worker-8] 2018-02-06 22:15:51,153 StorageProxy.java:2636 - Adding 
> hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
> org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) 
> at 
> org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints(StorageProxy.java:1247)
>  at 
> org.apache.cassandra.service.StorageProxy.syncWriteBatchedMutations(StorageProxy.java:1014)
>  at 

[jira] [Commented] (CASSANDRA-14215) Cassandra does not seem to be respecting max hint window

2018-02-06 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-14215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16354712#comment-16354712
 ] 

Arijit commented on CASSANDRA-14215:


[~jjirsa] Thanks for the response. What's the reason for writing hints beyond 
the hint window if there's no chance that they would be replayed? On our 
production cluster, this causes downtime as the Cassandra partition fills up 
quickly with hints when a node goes down.

> Cassandra does not seem to be respecting max hint window
> 
>
> Key: CASSANDRA-14215
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14215
> Project: Cassandra
>  Issue Type: Bug
>  Components: Hints, Streaming and Messaging
>Reporter: Arijit
>Priority: Major
>
> On Cassandra 3.0.9, it was observed that Cassandra continues to write hints 
> even though a node remains down (and does not come up) for longer than the 
> default 3 hour window.
>  
> After doing "nodetool setlogginglevel org.apache.cassandra TRACE", we see the 
> following log line in cassandra (debug) logs:
>  StorageProxy.java:2625 - Adding hints for [/10.0.100.84]
>  
> One possible code path seems to be:
> cas -> commitPaxos(proposal, consistencyForCommit, true); -> submitHint (in 
> StorageProxy.java)
>  
> The "true" parameter above explicitly states that a hint should be recorded 
> and ignores the time window calculation performed by the shouldHint method 
> invoked in other code paths. Is there a reason for this behavior?
>  
> Edit: There are actually two stacks that seem to be producing hints, the 
> "cas" and "syncWriteBatchedMutations" methods. I have posted them below.
>  
> A third issue seems to be that Cassandra seems to reset the timer which 
> counts how long a node has been down after a restart. Thus if Cassandra is 
> restarted on a good node, it continues to accumulate hints for a down node 
> over the next three hours.
>  
> WARN [SharedPool-Worker-14] 2018-02-06 22:15:51,136 StorageProxy.java:2636 - 
> Adding hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
> org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2603) 
> at 
> org.apache.cassandra.service.StorageProxy.commitPaxos(StorageProxy.java:540) 
> at org.apache.cassandra.service.StorageProxy.cas(StorageProxy.java:282) at 
> org.apache.cassandra.cql3.statements.ModificationStatement.executeWithCondition(ModificationStatement.java:432)
>  at 
> org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:407)
>  at 
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
>  at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) 
> at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) 
> at 
> org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
>  at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
>  at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
>  at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
>  at 
> io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32)
>  at 
> io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
>  at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) at 
> java.lang.Thread.run(Thread.java:748) WARN
>  
>  
> [SharedPool-Worker-8] 2018-02-06 22:15:51,153 StorageProxy.java:2636 - Adding 
> hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
> org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) 
> at 
> org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) 
> at 
> org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints(StorageProxy.java:1247)
>  at 
> org.apache.cassandra.service.StorageProxy.syncWriteBatchedMutations(StorageProxy.java:1014)
>  at 
> org.apache.cassandra.service.StorageProxy.mutateAtomically(StorageProxy.java:899)
>  at 
> org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:834)
>  at 
> org.apache.cassandra.cql3.statements.BatchStatement.executeWithoutConditions(BatchStatement.java:365)
>  at 
> 

[jira] [Updated] (CASSANDRA-14215) Cassandra does not seem to be respecting max hint window

2018-02-06 Thread Arijit (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-14215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arijit updated CASSANDRA-14215:
---
Description: 
On Cassandra 3.0.9, it was observed that Cassandra continues to write hints 
even though a node remains down (and does not come up) for longer than the 
default 3 hour window.

 

After doing "nodetool setlogginglevel org.apache.cassandra TRACE", we see the 
following log line in cassandra (debug) logs:
 StorageProxy.java:2625 - Adding hints for [/10.0.100.84]

 

One possible code path seems to be:

cas -> commitPaxos(proposal, consistencyForCommit, true); -> submitHint (in 
StorageProxy.java)

 

The "true" parameter above explicitly states that a hint should be recorded and 
ignores the time window calculation performed by the shouldHint method invoked 
in other code paths. Is there a reason for this behavior?

 

Edit: There are actually two stacks that seem to be producing hints, the "cas" 
and "syncWriteBatchedMutations" methods. I have posted them below.

 

A third issue seems to be that Cassandra seems to reset the timer which counts 
how long a node has been down after a restart. Thus if Cassandra is restarted 
on a good node, it continues to accumulate hints for a down node over the next 
three hours.

 

WARN [SharedPool-Worker-14] 2018-02-06 22:15:51,136 StorageProxy.java:2636 - 
Adding hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) at 
org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) at 
org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2603) at 
org.apache.cassandra.service.StorageProxy.commitPaxos(StorageProxy.java:540) at 
org.apache.cassandra.service.StorageProxy.cas(StorageProxy.java:282) at 
org.apache.cassandra.cql3.statements.ModificationStatement.executeWithCondition(ModificationStatement.java:432)
 at 
org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:407)
 at 
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
 at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) 
at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) at 
org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
 at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
 at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
 at 
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
 at 
io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32)
 at 
io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
 at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) at 
java.lang.Thread.run(Thread.java:748) WARN

 

 

[SharedPool-Worker-8] 2018-02-06 22:15:51,153 StorageProxy.java:2636 - Adding 
hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) at 
org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) at 
org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints(StorageProxy.java:1247)
 at 
org.apache.cassandra.service.StorageProxy.syncWriteBatchedMutations(StorageProxy.java:1014)
 at 
org.apache.cassandra.service.StorageProxy.mutateAtomically(StorageProxy.java:899)
 at 
org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:834)
 at 
org.apache.cassandra.cql3.statements.BatchStatement.executeWithoutConditions(BatchStatement.java:365)
 at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:343)
 at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:329)
 at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:324)
 at 
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
 at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) 
at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) at 
org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
 at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
 at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
 at 

[jira] [Updated] (CASSANDRA-14215) Cassandra does not seem to be respecting max hint window

2018-02-06 Thread Arijit (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-14215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arijit updated CASSANDRA-14215:
---
Description: 
On Cassandra 3.0.9, it was observed that Cassandra continues to write hints 
even though a node remains down (and does not come up) for longer than the 
default 3 hour window.

 

After doing "nodetool setlogginglevel org.apache.cassandra TRACE", we see the 
following log line in cassandra (debug) logs:
 StorageProxy.java:2625 - Adding hints for [/10.0.100.84]

 

One possible code path seems to be:

cas -> commitPaxos(proposal, consistencyForCommit, true); -> submitHint (in 
StorageProxy.java)

 

The "true" parameter above explicitly states that a hint should be recorded and 
ignores the time window calculation performed by the shouldHint method invoked 
in other code paths. Is there a reason for this behavior?

 

Edit: There are actually two stacks that seem to be producing hints, the "cas" 
and "syncWriteBatchedMutations" methods

WARN [SharedPool-Worker-14] 2018-02-06 22:15:51,136 StorageProxy.java:2636 - 
Adding hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) at 
org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) at 
org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2603) at 
org.apache.cassandra.service.StorageProxy.commitPaxos(StorageProxy.java:540) at 
org.apache.cassandra.service.StorageProxy.cas(StorageProxy.java:282) at 
org.apache.cassandra.cql3.statements.ModificationStatement.executeWithCondition(ModificationStatement.java:432)
 at 
org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:407)
 at 
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
 at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) 
at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) at 
org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
 at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
 at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
 at 
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
 at 
io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32)
 at 
io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
 at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) at 
java.lang.Thread.run(Thread.java:748) WARN

 

 

[SharedPool-Worker-8] 2018-02-06 22:15:51,153 StorageProxy.java:2636 - Adding 
hints for [/10.0.100.84] with stack trace: java.lang.Throwable: at 
org.apache.cassandra.service.StorageProxy.stackTrace(StorageProxy.java:2608) at 
org.apache.cassandra.service.StorageProxy.submitHint(StorageProxy.java:2617) at 
org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints(StorageProxy.java:1247)
 at 
org.apache.cassandra.service.StorageProxy.syncWriteBatchedMutations(StorageProxy.java:1014)
 at 
org.apache.cassandra.service.StorageProxy.mutateAtomically(StorageProxy.java:899)
 at 
org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:834)
 at 
org.apache.cassandra.cql3.statements.BatchStatement.executeWithoutConditions(BatchStatement.java:365)
 at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:343)
 at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:329)
 at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:324)
 at 
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
 at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) 
at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) at 
org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115)
 at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
 at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
 at 
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
 at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
 at 
io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32)
 at 

[jira] [Created] (CASSANDRA-14215) Cassandra does not seem to be respecting max hint window

2018-02-05 Thread Arijit (JIRA)
Arijit created CASSANDRA-14215:
--

 Summary: Cassandra does not seem to be respecting max hint window
 Key: CASSANDRA-14215
 URL: https://issues.apache.org/jira/browse/CASSANDRA-14215
 Project: Cassandra
  Issue Type: Bug
  Components: Hints, Streaming and Messaging
Reporter: Arijit


On Cassandra 3.0.9, it was observed that Cassandra continues to write hints 
even though a node remains down (and does not come up) for longer than the 
default 3 hour window.

 

After doing "nodetool setlogginglevel org.apache.cassandra TRACE", we see the 
following log line in cassandra (debug) logs:
StorageProxy.java:2625 - Adding hints for [/10.0.100.84]

 

One possible code path seems to be:

cas -> commitPaxos(proposal, consistencyForCommit, true); -> submitHint (in 
StorageProxy.java)

 

The "true" parameter above explicitly states that a hint should be recorded and 
ignores the time window calculation performed by the shouldHint method invoked 
in other code paths. Is there a reason for this behavior?

 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-10 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15906001#comment-15906001
 ] 

Arijit commented on CASSANDRA-13308:


My workaround for now is to delete hint files for a node before starting 
Cassandra and running "nodetool decommission" on it (since it is taking quite 
long). Does that sound legitimate?

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
> Attachments: 28207.stack, logs, logs_decommissioned_node
>
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15902506#comment-15902506
 ] 

Arijit edited comment on CASSANDRA-13308 at 3/9/17 5:11 AM:


The stack and "logs" were for a non-leaving node. The 
"logs_decommissioned_node" file was for the leaving node. If you look at the 
timestamps, you will see that on 06:04:33, the leaving node says 
DECOMMISSIONED, but the "logs" file shows hinted handoff occurring at 07:01:43. 
The host id in the hints file corresponds to that of the leaving node.

And you are correct! The cluster had a history of stopping Cassandra on nodes 
for a while before starting and running "nodetool decommission" on them. I 
believe this was done a few times before, and it caused the same condition 
described above at least twice. The nodes might have been down for several 
hours before the decommission.


was (Author: arijit91):
The stack and "logs" were for a non-leaving node. The 
"logs_decommissioned_node" file was for the leaving node. If you look at the 
timestamps, you will see that on 06:04:33, the leaving node says 
DECOMMISSIONED, but the "logs" file shows hinted handoff occurring at 07:01:43. 
The host id in the hints file corresponds to that of the leaving node.

And you are correct! The cluster had a history of stopping Cassandra on nodes 
for a while before starting and running "nodetool decommission" on them. I 
believe this was done a few times before, and it caused the same condition 
described above at least twice. The nodes might have been done for several 
hours before the decommission.

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
> Attachments: 28207.stack, logs, logs_decommissioned_node
>
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15902506#comment-15902506
 ] 

Arijit commented on CASSANDRA-13308:


The stack and "logs" were for a non-leaving node. The 
"logs_decommissioned_node" file was for the leaving node. If you look at the 
timestamps, you will see that on 06:04:33, the leaving node says 
DECOMMISSIONED, but the "logs" file shows hinted handoff occurring at 07:01:43. 
The host id in the hints file corresponds to that of the leaving node.

And you are correct! The cluster had a history of stopping Cassandra on nodes 
for a while before starting and running "nodetool decommission" on them. I 
believe this was done a few times before, and it caused the same condition 
described above at least twice. The nodes might have been done for several 
hours before the decommission.

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
> Attachments: 28207.stack, logs, logs_decommissioned_node
>
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arijit updated CASSANDRA-13308:
---
Attachment: logs_decommissioned_node

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
> Attachments: 28207.stack, logs, logs_decommissioned_node
>
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15902369#comment-15902369
 ] 

Arijit edited comment on CASSANDRA-13308 at 3/9/17 2:36 AM:


Thanks for looking into this!

The cluster is 10 nodes in size, with about 2 GB of metadata on each node right 
now. Although surprisingly, when this happened yesterday,
I saw that nodes on average had 500 MB of hints for the decommissioned node 
with one node storing 3 GB of hints.

I don't think there were any range movements happening. I would guess that this 
is not CASSANDRA-12281, since I don't see the stack trace for that bug in my 
jstack output.

I've attached the jstack output (relevant threads from what I could figure out 
are 28548 and 5832) and a snippet of the log messages during this time.

I didn't think to look at `nodetool netstats`, but it looked like hinted 
handoff was happening, albeit slowly (a 100 MB file was getting replayed every 
30 minutes according to logs, even though the node was decommissioned). The 
streaming for decommission must have completed, from the fact that logs on the 
node said it was DECOMMISSIONED?

Please let me know if you need any more logs.


was (Author: arijit91):
Thanks for looking into this!

The cluster is 10 nodes in size, with about 2 GB of metadata on each node right 
now. Although surprisingly, when this happened yesterday,
I saw that nodes on average had 500 MB of hints for the decommissioned node 
with one node storing 3 GB of hints.

I don't think there were any range movements happening. I would guess that this 
is not CASSANDRA-12281, since I don't see the stack trace for that bug in my 
jstack output.

I've attached the jstack output (relevant threads from what I could figure out 
are 28548 and 5832) and a snippet of the log messages during this time.

I didn't think to look at `nodetool netstats`, but it looked like hinted 
handoff was happening, albeit slowly (a 100 MB file was getting replayed every 
30 minutes according to logs, even though the node was decommissioned). The 
streaming for decommission must have completed, from the fact that logs on the 
node said it was DECOMMISSIONED?

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
> Attachments: 28207.stack, logs
>
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15902369#comment-15902369
 ] 

Arijit edited comment on CASSANDRA-13308 at 3/9/17 2:34 AM:


Thanks for looking into this!

The cluster is 10 nodes in size, with about 2 GB of metadata on each node right 
now. Although surprisingly, when this happened yesterday,
I saw that nodes on average had 500 MB of hints for the decommissioned node 
with one node storing 3 GB of hints.

I don't think there were any range movements happening. I would guess that this 
is not CASSANDRA-12281, since I don't see the stack trace for that bug in my 
jstack output.

I've attached the jstack output (relevant threads from what I could figure out 
are 28548 and 5832) and a snippet of the log messages during this time.

I didn't think to look at `nodetool netstats`, but it looked like hinted 
handoff was happening, albeit slowly (a 100 MB file was getting replayed every 
30 minutes according to logs, even though the node was decommissioned). The 
streaming for decommission must have completed, from the fact that logs on the 
node said it was DECOMMISSIONED?


was (Author: arijit91):
Thanks for looking into this!

The cluster is 10 nodes in size, with about 2 GB of metadata on each node right 
now. Although surprisingly, when this happened yesterday,
I saw that nodes on average had 500 GB of hints for the decommissioned node 
with one node storing 3 GB of hints.

I don't think there were any range movements happening. I would guess that this 
is not CASSANDRA-12281, since I don't see the stack trace for that bug in my 
jstack output.

I've attached the jstack output (relevant threads from what I could figure out 
are 28548 and 5832) and a snippet of the log messages during this time.

I didn't think to look at `nodetool netstats`, but it looked like hinted 
handoff was happening, albeit slowly (a 100 MB file was getting replayed every 
30 minutes according to logs, even though the node was decommissioned). The 
streaming for decommission must have completed, from the fact that logs on the 
node said it was DECOMMISSIONED?

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
> Attachments: 28207.stack, logs
>
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arijit updated CASSANDRA-13308:
---
Attachment: logs
28207.stack

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
> Attachments: 28207.stack, logs
>
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15902369#comment-15902369
 ] 

Arijit commented on CASSANDRA-13308:


Thanks for looking into this!

The cluster is 10 nodes in size, with about 2 GB of metadata on each node right 
now. Although surprisingly, when this happened yesterday,
I saw that nodes on average had 500 GB of hints for the decommissioned node 
with one node storing 3 GB of hints.

I don't think there were any range movements happening. I would guess that this 
is not CASSANDRA-12281, since I don't see the stack trace for that bug in my 
jstack output.

I've attached the jstack output (relevant threads from what I could figure out 
are 28548 and 5832) and a snippet of the log messages during this time.

I didn't think to look at `nodetool netstats`, but it looked like hinted 
handoff was happening, albeit slowly (a 100 MB file was getting replayed every 
30 minutes according to logs, even though the node was decommissioned). The 
streaming for decommission must have completed, from the fact that logs on the 
node said it was DECOMMISSIONED?

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
> Attachments: 28207.stack, logs
>
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arijit updated CASSANDRA-13308:
---
Priority: Major  (was: Minor)

> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point the 
> decommissioned node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-13308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arijit updated CASSANDRA-13308:
---
Description: 
How to reproduce the issue I'm seeing:
Shut down Cassandra on one node of the cluster and wait until we accumulate a 
ton of hints. Start Cassandra on the node and immediately run "nodetool 
decommission" on it.

The node streams its replicas and marks itself as DECOMMISSIONED, but other 
nodes do not seem to see this message. "nodetool status" shows the 
decommissioned node in state "UL" on all other nodes (it is also present in 
system.peers), and Cassandra logs show that gossip tasks on nodes are not 
proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
gossip task is blocked on hints dispatch (I can provide traces if this is not 
obvious). Because the cluster is large and there are a lot of hints, this is 
taking a while. 

On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
files for the decommissioned node. Documentation seems to suggest that these 
hints should be deleted during "nodetool decommission", but it does not seem to 
be the case here. This is the bug being reported.

To recover from this scenario, if I manually delete hint files on the nodes, 
the hints dispatcher threads throw a bunch of exceptions and the decommissioned 
node is now in state "DL" (perhaps it missed some gossip messages?). The node 
is still in my "system.peers" table

Restarting Cassandra on all nodes after this step does not fix the issue (the 
node remains in the peers table). In fact, after this point the decommissioned 
node is in state "DN"

  was:
How to reproduce the issue I'm seeing:
Shut down Cassandra on one node of the cluster and wait until we accumulate a 
ton of hints. Start Cassandra on the node and immediately run "nodetool 
decommission" on it.

The node streams its replicas and marks itself has DECOMMISSIONED, but other 
nodes do not seem to see this message. "nodetool status" shows the 
decommissioned node in state "UL", and Cassandra logs show that this is because 
gossip tasks on nodes are blocked. Jstack shows that the tasks are blocked on 
hints dispatch (I can provide traces if this is not obvious). Because the 
cluster is large and there are a lot of hints, this is taking a while. 

On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
files for the decommissioned node. Documentation seems to suggest that these 
hints should be deleted during "nodetool decommission".

When I manually delete hint files on the nodes, the hints dispatcher threads 
throw a bunch of exceptions and the decommissioned node is now in state "DL" 
(perhaps it missed some gossip messages?). The node is still in my 
"system.peers" table

Restarting Cassandra on all nodes after this step does not fix the issue (the 
node remains in the peers table). In fact, after this point the decommissioned 
node is in state "DN"


> Hint files not being deleted on nodetool decommission
> -
>
> Key: CASSANDRA-13308
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
> Project: Cassandra
>  Issue Type: Bug
>  Components: Streaming and Messaging
> Environment: Using Cassandra version 3.0.9
>Reporter: Arijit
>Priority: Minor
>
> How to reproduce the issue I'm seeing:
> Shut down Cassandra on one node of the cluster and wait until we accumulate a 
> ton of hints. Start Cassandra on the node and immediately run "nodetool 
> decommission" on it.
> The node streams its replicas and marks itself as DECOMMISSIONED, but other 
> nodes do not seem to see this message. "nodetool status" shows the 
> decommissioned node in state "UL" on all other nodes (it is also present in 
> system.peers), and Cassandra logs show that gossip tasks on nodes are not 
> proceeding (number of pending tasks keeps increasing). Jstack suggests that a 
> gossip task is blocked on hints dispatch (I can provide traces if this is not 
> obvious). Because the cluster is large and there are a lot of hints, this is 
> taking a while. 
> On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
> files for the decommissioned node. Documentation seems to suggest that these 
> hints should be deleted during "nodetool decommission", but it does not seem 
> to be the case here. This is the bug being reported.
> To recover from this scenario, if I manually delete hint files on the nodes, 
> the hints dispatcher threads throw a bunch of exceptions and the 
> decommissioned node is now in state "DL" (perhaps it missed some gossip 
> messages?). The node is still in my "system.peers" table
> Restarting Cassandra on all nodes after this step does not fix the issue (the 
> node remains in the peers table). In fact, after this point 

[jira] [Created] (CASSANDRA-13308) Hint files not being deleted on nodetool decommission

2017-03-08 Thread Arijit (JIRA)
Arijit created CASSANDRA-13308:
--

 Summary: Hint files not being deleted on nodetool decommission
 Key: CASSANDRA-13308
 URL: https://issues.apache.org/jira/browse/CASSANDRA-13308
 Project: Cassandra
  Issue Type: Bug
  Components: Streaming and Messaging
 Environment: Using Cassandra version 3.0.9
Reporter: Arijit
Priority: Minor


How to reproduce the issue I'm seeing:
Shut down Cassandra on one node of the cluster and wait until we accumulate a 
ton of hints. Start Cassandra on the node and immediately run "nodetool 
decommission" on it.

The node streams its replicas and marks itself has DECOMMISSIONED, but other 
nodes do not seem to see this message. "nodetool status" shows the 
decommissioned node in state "UL", and Cassandra logs show that this is because 
gossip tasks on nodes are blocked. Jstack shows that the tasks are blocked on 
hints dispatch (I can provide traces if this is not obvious). Because the 
cluster is large and there are a lot of hints, this is taking a while. 

On inspecting "/var/lib/cassandra/hints" on the nodes, I see a bunch of hint 
files for the decommissioned node. Documentation seems to suggest that these 
hints should be deleted during "nodetool decommission".

When I manually delete hint files on the nodes, the hints dispatcher threads 
throw a bunch of exceptions and the decommissioned node is now in state "DL" 
(perhaps it missed some gossip messages?). The node is still in my 
"system.peers" table

Restarting Cassandra on all nodes after this step does not fix the issue (the 
node remains in the peers table). In fact, after this point the decommissioned 
node is in state "DN"



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (CASSANDRA-12943) nodetool removenode should optionally perform repair

2016-11-22 Thread Arijit (JIRA)
Arijit created CASSANDRA-12943:
--

 Summary: nodetool removenode should optionally perform repair
 Key: CASSANDRA-12943
 URL: https://issues.apache.org/jira/browse/CASSANDRA-12943
 Project: Cassandra
  Issue Type: New Feature
  Components: Streaming and Messaging
Reporter: Arijit


Using nodetool removenode while expecting quorum consistency does not work 
since we essentially choose replicas at random to replace replicas on the node 
being removed.

For users expecting quorum consistency, it will be helpful to add an option 
which, if enabled, runs some form of repair during removenode. The consistency 
guarantee will be important for users who prefer consistency over availability.

This will eliminate the window of inconsistency between a removenode and a 
subsequent repair.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)