Details
-
Improvement
-
Status: Open
-
Normal
-
Resolution: Unresolved
-
None
-
Operability
-
Normal
-
All
-
None
Description
Repair coordination makes a few assumptions about message delivery which cause it to hang forever when those assumptions don’t hold true: fire and forget will not get rejected (participate has an issue and rejects the message), and a very delayed message will one day be seen (messaging can be dropped under load or when failure detector thinks a node is bad but is just GCing).
Given this and the desire to have better observability with repair (see CASSANDRA-15399), coordination should be changed into a request/response pattern (with retries) and polling (validation status and MerkleTree sending). This would allow the coordinator to detect changes in state (it was known participate was working on validation, but it no longer knows about the validation task), and to be able to recover from ephemeral issues.
Attachments
Issue Links
- relates to
-
CASSANDRA-16909 ☂ Medium Term Repair Improvements
- In Progress
-
CASSANDRA-15399 Add ability to track state in repair
- Resolved