abraunegg / onedrive

OneDrive Client for Linux
https://abraunegg.github.io
GNU General Public License v3.0
9.97k stars 859 forks source link

Bug: Does not synchronize during "Performing a database consistency" #2691

Closed kayzzen01 closed 6 months ago

kayzzen01 commented 6 months ago

Describe the bug

During the "Performing a database consistency and integrity check on locally stored data due to fullscan requirement" period, OneDrive does not synchronize. From what I understand, it even detects the change and puts it in a queue, because after the OneDrive service is restarted it synchronizes these changes.

I don't know how the innards of OneDrive work, but perhaps after the consistency and integrity check period I should reread this queue.

Operating System Details

Linux 6.6.25-1-lts #1 SMP PREEMPT_DYNAMIC Fri, 05 Apr 2024 14:16:56 +0000 x86_64 GNU/Linux

LSB Version:    n/a
Distributor ID: Arch
Description:    Arch Linux
Release:        rolling
Codename:       n/a

Client Installation Method

From Source

OneDrive Account Type

Personal

What is your OneDrive Application Version

onedrive v2.4.25

What is your OneDrive Application Configuration

Configuration file successfully loaded
onedrive version                             = v2.4.25
Config path                                  = /home/kayzzen/.config/onedrive
Config file found in config path             = true
Config option 'sync_dir'                     = /home/kayzzen/OneDrive
Config option 'enable_logging'               = false
Config option 'log_dir'                      = /var/log/onedrive/
Config option 'disable_notifications'        = false
Config option 'min_notify_changes'           = 5
Config option 'skip_dir'                     = 
Config option 'skip_dir_strict_match'        = false
Config option 'skip_file'                    = ~*|.~*|*.tmp|*.kate-swp|*.part
Config option 'skip_dotfiles'                = false
Config option 'skip_symlinks'                = false
Config option 'monitor_interval'             = 300
Config option 'monitor_log_frequency'        = 6
Config option 'monitor_fullscan_frequency'   = 12
Config option 'read_only_auth_scope'         = false
Config option 'dry_run'                      = false
Config option 'upload_only'                  = false
Config option 'download_only'                = false
Config option 'local_first'                  = false
Config option 'check_nosync'                 = false
Config option 'check_nomount'                = false
Config option 'resync'                       = false
Config option 'resync_auth'                  = false
Config option 'cleanup_local_files'          = false
Config option 'classify_as_big_delete'       = 1000
Config option 'disable_upload_validation'    = false
Config option 'bypass_data_preservation'     = false
Config option 'no_remote_delete'             = false
Config option 'remove_source_files'          = false
Config option 'sync_dir_permissions'         = 700
Config option 'sync_file_permissions'        = 600
Config option 'space_reservation'            = 52428800
Config option 'application_id'               = 
Config option 'azure_ad_endpoint'            = 
Config option 'azure_tenant_id'              = common
Config option 'user_agent'                   = 
Config option 'force_http_11'                = false
Config option 'debug_https'                  = false
Config option 'rate_limit'                   = 104857600
Config option 'operation_timeout'            = 3600
Config option 'dns_timeout'                  = 60
Config option 'connect_timeout'              = 10
Config option 'data_timeout'                 = 600
Config option 'ip_protocol_version'          = 0
Config option 'sync_root_files'              = false
Selective sync 'sync_list' configured        = true
sync_list contents:

# Include OneDrive Root Folders
/Config
/Documents
/Music
/Pictures
/Programs
/TempDrive
/Videos
/Workspace
Config option 'sync_business_shared_folders' = false
Business Shared Folders configured           = false
Config option 'webhook_enabled'              = false

What is your 'curl' version

curl 8.7.1 (x86_64-pc-linux-gnu) libcurl/8.7.1 OpenSSL/3.2.1 zlib/1.3.1 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 libssh2/1.11.0 nghttp2/1.61.0 nghttp3/1.2.0
Release-Date: 2024-03-27
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

Where is your 'sync_dir' located

Local

What are all your system 'mount points'

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=16361956k,nr_inodes=4090489,mode=755,inode64)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
/dev/nvme1n1p2 on / type ext4 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=37,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=3554)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,nosuid,nodev,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
/dev/nvme1n1p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=16381464k,nr_inodes=1048576,inode64)
/dev/nvme1n1p3 on /home type ext4 (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=3276292k,nr_inodes=819073,mode=700,uid=1000,gid=1000,inode64)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

What are all your local file system partition types

NAME        FSTYPE FSVER LABEL            UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                           
├─sda1      vfat   FAT32                  0451-EE68                                           
├─sda2                                                                                        
├─sda3      ntfs         win10            BABA589EBA585949                                    
└─sda4      ntfs         Windows RE tools 3C5852BD5852761C                                    
nvme1n1                                                                                       
├─nvme1n1p1 vfat   FAT32 efi              0B35-03F7                             894,8M    12% /boot
├─nvme1n1p2 ext4   1.0   root             4c864fdd-c3a3-4b3f-859e-5ac05e620795  102,1G    12% /
├─nvme1n1p3 ext4   1.0   home             4593b448-6a87-4ff5-af46-39b79c1cf3f4  669,4G    16% /home
└─nvme1n1p4 swap   1     swap             625bdf57-e1de-4290-a1b2-bc66b2fb50a5                [SWAP]

How do you use 'onedrive'

I use OneDrive in monitor mode and as a service:

systemctl --user enable onedrive

Steps to reproduce the behaviour

Wait for Performing a database consistency and integrity check on locally stored data due to fullscan requirement to start and change a file. After finishing the verification, the file will not be synchronized.

Restart the service for the file to be synchronized:

systemctl --user restart onedrive

Complete Verbose Log Output

I once renamed a file during the integrity check period and the error below was caused.

Apr 02 21:30:57 highwind onedrive[849]: Sync with OneDrive is complete
Apr 02 21:31:53 highwind onedrive[849]: ERROR: A local file has the same name as another local file.
Apr 02 21:31:53 highwind onedrive[849]: ERROR: To resolve, rename this local file: /home/kayzzen/OneDrive/Config/Arch/Applications Util/VMware.txt
Apr 02 21:31:53 highwind onedrive[849]: Skipping uploading this new file: /home/kayzzen/OneDrive/Config/Arch/Applications Util/VMware.txt

Screenshots

No response

Other Log Information or Details

No response

Additional context

No response

abraunegg commented 6 months ago

@kayzzen01

I don't know how the innards of OneDrive work, but perhaps after the consistency and integrity check period I should reread this queue.

This queue is read.

The entire client has been re-written over the last 12 months. To understand the architecture of the client please read: https://github.com/abraunegg/onedrive/blob/onedrive-v2.5.0-release-candidate-1/docs/client-architecture.md

kayzzen01 commented 6 months ago

Wow, what a huge job was done, amazing. The documentation is so rich.

Sorry, my lack of knowledge.

I can't say I understood all the flows in such a short time. I didn't see when the application sends it to the queue. This is controlled by the syncStatus property, that is, when the application detects a change, both local and remote, is the syncStatus updated? Because it should be safer to work with pseudo queues saved in the database.

Is this architecture valid for version 2.4.25? Or is it precisely the changes that are in version 2.5.0 that will bring more reliability?

abraunegg commented 6 months ago

All of that documentation is specific to v2.5.0 and above

abraunegg commented 5 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.