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)