[ https://issues.apache.org/jira/browse/CASSANDRA-17955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17624413#comment-17624413 ]
Stefan Miklosovic commented on CASSANDRA-17955: ----------------------------------------------- 4.0 j11 precommit https://app.circleci.com/pipelines/github/instaclustr/cassandra/1488/workflows/02fccb66-30fb-4ce3-ac75-6f275221af94 j8 precommit https://app.circleci.com/pipelines/github/instaclustr/cassandra/1488/workflows/08e02b33-6be5-4de9-8801-f725077bdca1 4.1 j11 precommit https://app.circleci.com/pipelines/github/instaclustr/cassandra/1487/workflows/ad3a7fb8-c84d-48d7-ae0c-6094cc6a1a21 j8 precommit https://app.circleci.com/pipelines/github/instaclustr/cassandra/1487/workflows/d5c56237-776e-4f81-92be-87bec32cfe1a trunk j11 precommit https://app.circleci.com/pipelines/github/instaclustr/cassandra/1486/workflows/9a714592-24e4-415a-951d-e143ec73ff50 j8 precommit https://app.circleci.com/pipelines/github/instaclustr/cassandra/1486/workflows/a1b9918c-e055-41b4-94c8-d47d90068aa1 Everything is green, I ve never seen 6 green builds in a row tbh. What I want to do now is to do run 500x on all repair related tests (python dtests included). > 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.x, 4.1-rc, 4.x > > Attachments: signature.asc > > Time Spent: 50m > 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