Some tasks need to monitor ?invariants? and automatically get canceled when those invariants are violated. For example, sending an HALog file to a node (sendHALogForWriteSet()) needs to be canceled if the receiver enters an error state. Similar issues exist for tasks that snapshot the backing store (takeSnapshot()
- actually, this case is probably covered), or that send a backing store to a service for disaster recovery (sendStore()), etc. We need to audit the code for such issues and then address them systematically. The failure to cancel such tasks on an appropriate failover event relates to
BLZG-786 as it can cause liveness problems (deadlock).
A list of methods/code points to be reviewed includes: