[ https://issues.apache.org/jira/browse/CASSANDRA-17955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Semb Wever updated CASSANDRA-17955: ------------------------------------------- Fix Version/s: (was: 4.1-rc) > Race condition on repair snapshots > ---------------------------------- > > Key: CASSANDRA-17955 > URL: https://issues.apache.org/jira/browse/CASSANDRA-17955 > Project: Cassandra > Issue Type: Bug > Components: Consistency/Repair, Local/Snapshots > Reporter: Cameron Zemek > Assignee: Stefan Miklosovic > Priority: Normal > Labels: 4.0 > Fix For: 4.0.8, 4.1-rc1, 4.1, 4.2 > > Attachments: signature.asc > > Time Spent: 1h > Remaining Estimate: 0h > > If an endpoint is convicted and that endpoint is a coordinator then > ActiveRepairService::removeParentRepairSession is called. > The issue is that this occurs on clearSnapshotExecutor and can happen while > RepairMessageVerbHandler is in process of taking a snapshot. So then you get > a race condition and clearSnapshot will throw a > java.nio.file.DirectoryNotEmptyException > > {code:java} > public static void deleteRecursiveWithThrottle(File dir, RateLimiter > rateLimiter) > { > if (dir.isDirectory()) > { > String[] children = dir.list(); > for (String child : children) > deleteRecursiveWithThrottle(new File(dir, child), rateLimiter); > } > // The directory is now empty so now it can be smoked > deleteWithConfirmWithThrottle(dir, rateLimiter); > } {code} > Due to the directory not being empty when it goes to remove the directory at > the end. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org