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)

Reply via email to