Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
None
-
Low
Description
PendingRepairManager#getScanners has an assertion that confirms an sstable is, in fact, marked as pending repair. Since validation compactions don't use the same concurrency controls as proper compactions, they can race with promotion/demotion compactions and end up getting assertion errors when the pending repair id is changed while the scanners are being acquired. Also, error handling in PendingRepairManager and CompactionStrategyManager leaks refs when this happens.