-
Type: Bug
-
Status: Open
-
Priority: Minor
-
Resolution: Unresolved
-
Affects Version/s: NoFixVersionApplicable
-
Fix Version/s: Not yet scheduled version
-
Component/s: Synchronizer
-
Epic Link:
-
Story Points:2
Error
Sentry Issue: NUXEO-DRIVE-2CF
UnknownPairState: Unknown pair state for 'synchronized' and 'moved' File "nxdrive\engine\watcher\local_watcher.py", line 1059, in handle_watchdog_event File "nxdrive\engine\watcher\local_watcher.py", line 783, in _handle_move_on_known_pair File "nxdrive\engine\dao\sqlite.py", line 1094, in update_local_state File "nxdrive\engine\dao\sqlite.py", line 1061, in _get_pair_state
Analysis
Logs before the error are:
nxdrive.engine.watcher.local_watcher Handling watchdog event [deleted] on 'C:\\Local Sync Folder\\Folder' nxdrive.engine.watcher.local_watcher Add pair to delete events: <DocPair[610] local_path=WindowsPath('Local Sync Folder/Folder'), local_parent_path=WindowsPath('Local Sync Folder'), remote_ref='defaultFileSystemItemFactory#default#DOCUID', local_state='synchronized', remote_state='synchronized', pair_state='synchronized',> nxdrive.engine.watcher.local_watcher Handling watchdog event [moved] on 'C:\\Local Sync Folder\\Folder' to 'C:\\Local Sync Folder\\Folder' nxdrive.engine.watcher.local_watcher Detect move for 'Folder' (<DocPair[610] local_path=WindowsPath('Local Sync Folder/Folder'), local_parent_path=WindowsPath('Local Sync Folder'), remote_ref='defaultFileSystemItemFactory#default#DOCUID', local_state='synchronized', remote_state='synchronized', pair_state='synchronized',>) nxdrive.engine.watcher.local_watcher Handling watchdog event [modified] on 'C:\\Local Sync Folder' nxdrive.engine.watcher.local_watcher Win: ignoring delete event as waiting for move resolution period expiration: (1580350243153, <DocPair[610] local_path=WindowsPath('Local Sync Folder/Folder'), local_parent_path=WindowsPath('Local Sync Folder'), remote_ref='defaultFileSystemItemFactory#default#DOCUID', local_state='synchronized', remote_state='synchronized', pair_state='synchronized',>) nxdrive.engine.watcher.local_watcher Win: ignoring delete event as file still exists: (1580350243153, <DocPair[610] local_path=WindowsPath('Local Sync Folder/Folder'), local_parent_path=WindowsPath('Local Sync Folder'), remote_ref='defaultFileSystemItemFactory#default#DOCUID', local_state='synchronized', remote_state='synchronized', pair_state='synchronized',>) nxdrive.engine.watcher.local_watcher Win: dequeuing delete event: (1580350243153, <DocPair[610] local_path=WindowsPath('Local Sync Folder/Folder'), local_parent_path=WindowsPath('Local Sync Folder'), remote_ref='defaultFileSystemItemFactory#default#DOCUID', local_state='synchronized', remote_state='synchronized', pair_state='synchronized',>) nxdrive.engine.watcher.local_watcher Handling watchdog event [deleted] on 'C:\\Local Sync Folder\\Folder' nxdrive.engine.watcher.local_watcher Add pair to delete events: <DocPair[610] local_path=WindowsPath('Local Sync Folder/Folder'), local_parent_path=WindowsPath('Local Sync Folder'), remote_ref='defaultFileSystemItemFactory#default#DOCUID', local_state='moved', remote_state='moved', pair_state='conflicted',> nxdrive.engine.watcher.local_watcher Handling watchdog event [moved] on 'C:\\Local Sync Folder\\Folder' to 'C:\\Local Sync Folder\\Folder' nxdrive.engine.watcher.local_watcher The pair was moved but it has been canceled manually, setting state to synchronized: <DocPair[610] local_path=WindowsPath('Local Sync Folder/Folder'), local_parent_path=WindowsPath('Local Sync Folder'), remote_ref='defaultFileSystemItemFactory#default#DOCUID', local_state='moved', remote_state='moved', pair_state='conflicted',>
The code following the last log line is:
log.info( "The pair was moved but it has been canceled manually, " f"setting state to synchronized: {doc_pair!r}" ) doc_pair.local_state = "synchronized"
Then we have the undefined pair state happening.
Fix
The code should also set the remote_pair to synchronized to really mimic a synced document.