Alex Petrov created CASSANDRA-12509:
---------------------------------------

             Summary: Shutdown process triggered twice during if the node is 
drained
                 Key: CASSANDRA-12509
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12509
             Project: Cassandra
          Issue Type: Bug
            Reporter: Alex Petrov


If the node is drained, the {{StorageService#drain}} 
[method|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/service/StorageService.java#L4212]
 is called, which triggers shutdown of mutation stage, messaging service, 
compaction, batchlog etc. In the end of this process, the node is moved to 
{{DRAINED}} status with the process still running. 

When JVM is shutdown, the JVM shutdown hooks are ran, which are subscribed 
during the server initialisation: 
{{Runtime.getRuntime().addShutdownHook(drainOnShutdown);}} 
[here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/service/StorageService.java#L575-L636].
 

I noticed this behaviour while reviewing [CASSANDRA-12461], as if we'd like add 
custom pre and post-shutdown hooks, most likely it makes sense to run them once 
(or user might expect such behaviour). 

Is this behaviour correct? Should we run whole shutdown process twice or just 
once in "drain" and no-op during JVM shutdown?  



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

Reply via email to