Journal needs to handle duplicate maintenance op tids
The ops can be re-used over new instantiations of librbd since they should have a unique journal tag each time the exclusive lock is acquired. This additional field needs to used to ensure a unique match.
#2 Updated by Jason Dillaman about 3 years ago
rbd::mirror::ImageReplayer::replay_flush should be modified to invoke a new method in librbd::journal::Replay to flush in-flight IO and op events and cancel any pending op events. The 'replay_flush' method only gets invoked when a new tag is detected in the replay stream. Essentially we want to shut down the Replay object and restart from a clean state, so perhaps librbd::Journal::start_external_replay could be modified to perform this shut down / restart if already in external replay mode.