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

Anthony Cozzie commented on CASSANDRA-12461:
--------------------------------------------

Notes:
  * Wrapping the hooks on insertion leads to some nice code in the shutdown 
hook, but it means we can't easily remove the hooks once we add them.  If this 
is important, it can be changed pretty easily.
  * The implementation uses synchronized blocks rather than 
CopyOnWriteArrayList.  This lets callers know if Cassandra shut down before 
they could add their hook.  I don't know if this is important enough to worry 
about; we could just punt here and simplify the code.
  * I didn't write any unit tests.  Hopefully the code is simply enough to just 
reason about, and I don't know of a simple way to unit test this (it would be 
difficult to add hooks in a dtest, verifying the order in a non-brittle way 
seems difficult, and Cassandra doesn't seem to have a good way to boot up full 
nodes in unit tests, as this is mostly a bad idea).

> Add hooks to StorageService shutdown
> ------------------------------------
>
>                 Key: CASSANDRA-12461
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12461
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Anthony Cozzie
>            Assignee: Anthony Cozzie
>         Attachments: 
> 0001-CASSANDRA-12461-add-C-support-for-shutdown-runnables.patch
>
>
> The JVM will usually run shutdown hooks in parallel.  This can lead to 
> synchronization problems between Cassandra, services that depend on it, and 
> services it depends on.  This patch adds some simple support for shutdown 
> hooks to StorageService.
> This should nearly solve CASSANDRA-12011



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

Reply via email to