-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Replication
-
Fully Compatible
-
v8.0, v7.0, v6.0
-
200
Checking backupCursorKeepAliveFuture outside of the _mutex is racy.
One possible fix is to:
- Mark backupCursorKeepAliveFuture as (M).
- Move the check of _syncingFilesState.backupCursorKeepAliveFuture up into the _mutex.
- If the check succeed, we need to wait AFTER the _mutex to avoid risks of deadlocks.
- Add an if (_initialSyncCancellationSource.token().isCanceled()) in _keepBackupCursorAlive before setting the future.