Marcus Eriksson created CASSANDRA-9070:
------------------------------------------

             Summary: Race in cancelling compactions
                 Key: CASSANDRA-9070
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9070
             Project: Cassandra
          Issue Type: Bug
            Reporter: Marcus Eriksson
             Fix For: 2.0.14


seems we might have a race situation when cancelling compactions

currently we do the following to ensure that we don't start any new compactions 
when we try to do markAllCompacting()

# pause compactions - this makes sure we don't create any new compaction tasks 
from the compaction strategies
# cancel any ongoing compactions - compactions register themselves with the 
CompactionMetrics and then, when cancelling we get all compactions here, and 
tell them to stop

Problem is that there is a window between when the CompactionTask is created 
and when it is registered in CompactionMetrics meaning with a bit of bad luck, 
we could have a situation like this:
# we finish a compaction and create a new CompactionTask from the compaction 
strategy
# we pause the compaction strategies to not create any new CompactionTasks
# we cancel all ongoing compactions
# The CompactionTask created in #1 above registers itself in CompactionMetrics 
and misses that it should be cancelled



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

Reply via email to