You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Edward Capriolo (JIRA)" <ji...@apache.org> on 2016/06/09 01:33:20 UTC

[jira] [Created] (CASSANDRA-11984) StorageService shutdown hook should use a volatile variable

Edward Capriolo created CASSANDRA-11984:
-------------------------------------------

             Summary: StorageService shutdown hook should use a volatile variable
                 Key: CASSANDRA-11984
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11984
             Project: Cassandra
          Issue Type: Bug
            Reporter: Edward Capriolo
            Assignee: Edward Capriolo
             Fix For: 3.8


In StorageService.java there is a variable accessed from other threads that is not marked volatile.

{noformat}
  private boolean inShutdownHook = false;
  public boolean isInShutdownHook()
   {
       return inShutdownHook;
   }
  drainOnShutdown = new Thread(new WrappedRunnable()
       {
           @Override
           public void runMayThrow() throws InterruptedException
           {
               inShutdownHook = true;
{noformat}

This is called from at least here:
{noformat}
./src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java:                if (!StorageService.instance.isInShutdownHook())
{noformat}

This could cause issues in controlled shutdown like drain commands.



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