Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-13797

RepairJob blocks on syncTasks

    XMLWordPrintableJSON

    Details

    • Severity:
      Normal

      Description

      The thread running RepairJob blocks while it waits for the validations it starts to complete (see here). However, the downstream callbacks (ie: the post-repair cleanup stuff) aren't waiting for RepairJob#run to return, they're waiting for a result to be set on RepairJob the future, which happens after the sync tasks have completed. This post repair cleanup stuff also immediately shuts down the executor RepairJob#run is running in. So in noop repair sessions, where there's nothing to stream, I'm seeing the callbacks sometimes fire before RepairJob#run wakes up, and causing an InterruptedException is thrown.

      I'm pretty sure this can just be removed, but I'd like a second opinion. This appears to just be a holdover from before repair coordination became async. I thought it might be doing some throttling by blocking, but each repair session gets it's own executor, and validation is throttled by the fixed size executors doing the actual work of validation, so I don't think we need to keep this around.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                bdeggleston Blake Eggleston
                Reporter:
                bdeggleston Blake Eggleston
                Authors:
                Blake Eggleston
                Reviewers:
                Marcus Eriksson
              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: