Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: std.uri.URIException@/usr/lib/ldc/x86_64-linux-gnu/include/d/std/uri.d(228): Expected two hexadecimal digits after '%' #2815

Closed
emirvmendoza opened this issue Sep 18, 2024 · 13 comments · Fixed by #2817 or #2851
Labels
Bug Something isn't working Fixed
Milestone

Comments

@emirvmendoza
Copy link

emirvmendoza commented Sep 18, 2024

Describe the bug

OneDrive client leads to a series of error messages after database vacuum is complete

From terminal:

Attempting to perform a database vacuum to optimise database
Database vacuum is complete
std.uri.URIException@/usr/lib/ldc/x86_64-linux-gnu/include/d/std/uri.d(228): Expected two hexadecimal digits after '%'
----------------
??:? [0x5ace75d7b92f]
??:? [0x5ace75cf8ede]
??:? [0x5ace75d2f970]
??:? [0x5ace75d28cc7]
??:? [0x5ace75d215b8]
??:? [0x5ace75d1fcd1]
??:? [0x5ace75dd28a6]
??:? [0x5ace75dd084b]
??:? void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int function(char[][])*).runAll() [0x700e3937edcc]
??:? _d_run_main2 [0x700e3937ebe6]
??:? _d_run_main [0x700e3937ea3c]
??:? [0x5ace75dfbfa1]
??:? [0x700e38a2a1c9]
??:? __libc_start_main [0x700e38a2a28a]
??:? [0x5ace75cea254]

Operating System Details

Linux [REDACTED] 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Distributor ID:	Linuxmint
Description:	Linux Mint 22
Release:	22
Codename:	wilma

Client Installation Method

From 3rd Party Source (PPA, OpenSuSE Build Service etc)

OneDrive Account Type

Personal

What is your OneDrive Application Version

onedrive v2.5.0-1+np2+2.1

What is your OneDrive Application Configuration

Application version                          = onedrive v2.5.0-1+np2+2.1
Compiled with                                = LDC 2106
User Application Config path                 = /home/[REDACT]/.config/onedrive
System Application Config path               = /etc/onedrive
Applicable Application 'config' location     = /home/[REDACT]/.config/onedrive/config
Configuration file found in config location  = false - using application defaults
Applicable 'sync_list' location              = /home/[REDACT]/.config/onedrive/sync_list
Applicable 'items.sqlite3' location          = /home/[REDACT]/.config/onedrive/items.sqlite3
Config option 'drive_id'                     = 
Config option 'sync_dir'                     = ~/OneDrive
Config option 'enable_logging'               = false
Config option 'log_dir'                      = /var/log/onedrive
Config option 'disable_notifications'        = false
Config option 'skip_dir'                     = 
Config option 'skip_dir_strict_match'        = false
Config option 'skip_file'                    = ~*|.~*|*.tmp|*.swp|*.partial
Config option 'skip_dotfiles'                = false
Config option 'skip_symlinks'                = false
Config option 'monitor_interval'             = 300
Config option 'monitor_log_frequency'        = 12
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 'disable_download_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'               = d50ca740-c83f-4d1b-b616-12c519384f0c
Config option 'azure_ad_endpoint'            = 
Config option 'azure_tenant_id'              = 
Config option 'user_agent'                   = ISV|abraunegg|OneDrive Client for Linux/v2.5.0-1+np2+2.1
Config option 'force_http_11'                = false
Config option 'debug_https'                  = false
Config option 'rate_limit'                   = 0
Config option 'operation_timeout'            = 3600
Config option 'dns_timeout'                  = 60
Config option 'connect_timeout'              = 10
Config option 'data_timeout'                 = 60
Config option 'ip_protocol_version'          = 0
Config option 'threads'                      = 8
Environment var 'XDG_RUNTIME_DIR'            = true
Environment var 'DBUS_SESSION_BUS_ADDRESS'   = true
Config option 'notify_file_actions'          = false

Selective sync 'sync_list' configured        = false

Config option 'sync_business_shared_items'   = false

Config option 'webhook_enabled'              = false

What is your 'curl' version

curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/8.5.0 OpenSSL/3.0.13 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 (+libidn2/2.3.7) libssh/0.10.6/openssl/zlib nghttp2/1.59.0 librtmp/2.3 OpenLDAP/2.6.7
Release-Date: 2023-12-06, security patched: 8.5.0-2ubuntu10.4
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 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'

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=3979220k,nr_inodes=994805,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=804720k,mode=755,inode64)
/dev/sda2 on / type ext4 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64)
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)
efivarfs on /sys/firmware/efi/efivars type efivarfs (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=32,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=3021)
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)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
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=804716k,nr_inodes=201179,mode=700,uid=1000,gid=1000,inode64)
/home/.ecryptfs/hewlett/.Private on /home/hewlett type ecryptfs (rw,nosuid,nodev,relatime,ecryptfs_fnek_sig=1a735a7000ccba8a,ecryptfs_sig=e31e64ddd0d2ddfd,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
viber_6d03c7f5d6679794ce0978e434bc6e69.AppImage on /tmp/.mount_viber_ZVY7BT type fuse.viber_6d03c7f5d6679794ce0978e434bc6e69.AppImage (ro,nosuid,nodev,relatime,user_id=1000,group_id=1000)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
OneDriveGUI-1.1.0-x86_64_a385fe2e96020446fe352781c65a7ff1.AppImage on /tmp/.mount_OneDriJZUZS3 type fuse.OneDriveGUI-1.1.0-x86_64_a385fe2e96020446fe352781c65a7ff1.AppImage (ro,nosuid,nodev,relatime,user_id=1000,group_id=1000)
KeePassXC-2.7.9-x86_64_09d5556e85a42ea0d6c4cf4fde417c0c.AppImage on /tmp/.mount_KeePasbzGEvI type fuse.KeePassXC-2.7.9-x86_64_09d5556e85a42ea0d6c4cf4fde417c0c.AppImage (ro,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       4D45-F91A                             504.8M     1% /boot/efi
└─sda2
     ext4   1.0         2988c773-79c7-45b9-9503-6865f7cd499f  217.7G    71% /

How do you use 'onedrive'

OneDrive account shared across multiple systems / platforms / Operating Systems and in use at the same time

Steps to reproduce the behaviour

Type in terminal: "onedrive --confdir='/home/[REDACT]/.config/onedrive/accounts/[REDACT]' --monitor -v"

As suggested here: bpozdena/OneDriveGUI#185 (comment)

Complete Verbose Log Output

DEBUG: selfBuiltPath for sync_list check needs decoding: /Documents/BTIN/Whisper Youtube Crosslingual Subtitles - a Hugging Face Space by RASMUS_files/a_data/BTINserye%20Anti-Terror%20Law%20sa%20Wikang%20Filipino%20-%2.mp4
DEBUG: Failure scope was called
DEBUG: performSynchronisedExitProcess called by: failureScope
DEBUG: Shutting down Filesystem Monitoring instance
DEBUG: Monitored directory removed: (REDACTED)
DEBUG: Shutdown of Filesystem Monitoring instance is complete
DEBUG: Shutting down Sync Engine instance
DEBUG: SyncEngine: Waiting for all internal threads to complete
DEBUG: Shutting down processPool in a thread blocking manner
DEBUG: Shutdown Sync Engine instance is complete
DEBUG: CurlEngine releaseAllCurlInstances() called
DEBUG: CurlEngine curlEnginePool size to release: 2
DEBUG: CurlEngine cleanup() called on instance id: mT4UcdeGSFJvBAyq
DEBUG: CurlEngine shutdownCurlHTTPInstance() called on instance id: mT4UcdeGSFJvBAyq
DEBUG: HTTP instance still active: mT4UcdeGSFJvBAyq
DEBUG: HTTP instance isStopped state before http.shutdown(): false
DEBUG: HTTP instance isStopped state post http.shutdown(): true
DEBUG: HTTP instance shutdown and destroyed: mT4UcdeGSFJvBAyq
DEBUG: CurlEngine released
DEBUG: CurlEngine cleanup() called on instance id: 4ePjJ835TZlA10qf
DEBUG: CurlEngine shutdownCurlHTTPInstance() called on instance id: 4ePjJ835TZlA10qf
DEBUG: HTTP instance still active: 4ePjJ835TZlA10qf
DEBUG: HTTP instance isStopped state before http.shutdown(): false
DEBUG: HTTP instance isStopped state post http.shutdown(): true
DEBUG: HTTP instance shutdown and destroyed: 4ePjJ835TZlA10qf
DEBUG: CurlEngine released
DEBUG: CurlEngine releaseAllCurlInstances() completed
DEBUG: Shutting down Client Side Filtering instance
DEBUG: Shutdown of Client Side Filtering instance is complete
DEBUG: Shutting down Database instance
DEBUG: Attempting to perform a database vacuum to optimise database
DEBUG: Counting open SQL statements
DEBUG: Database vacuum is complete
DEBUG: Shutdown of Database instance is complete
DEBUG: Shutting down Application Configuration instance
DEBUG: Shutdown of Application Configuration instance is complete
DEBUG: Application is exiting
DEBUG: Shutting down Application Logging instance
std.uri.URIException@/usr/lib/ldc/x86_64-linux-gnu/include/d/std/uri.d(228): Expected two hexadecimal digits after '%'
----------------
??:? [0x59fec78df92f]
??:? [0x59fec785cede]
??:? [0x59fec7893970]
??:? [0x59fec788ccc7]
??:? [0x59fec78855b8]
??:? [0x59fec7883cd1]
??:? [0x59fec79368a6]
??:? [0x59fec793484b]
??:? void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int function(char[][])*).runAll() [0x7cc70059adcc]
??:? _d_run_main2 [0x7cc70059abe6]
??:? _d_run_main [0x7cc70059aa3c]
??:? [0x59fec795ffa1]
??:? [0x7cc6ffc2a1c9]
??:? __libc_start_main [0x7cc6ffc2a28a]
??:? [0x59fec784e254]

Note: Full debug log with personal information.  Will be provided only upon request.

Screenshots

No response

Other Log Information or Details

No response

Additional context

Same issue as reported here, but on LMDE 6: bpozdena/OneDriveGUI#185

@abraunegg
Copy link
Owner

@emirvmendoza
How reproducible is this ?

@emirvmendoza
Copy link
Author

@emirvmendoza How reproducible is this ?

Happens every time I run "onedrive --confdir='/home/[REDACT]/.config/onedrive/accounts/[REDACT]' --monitor -v"

Triggered when I installed the latest update to onedrive client

Goes away when I apply the fix described here: bpozdena/OneDriveGUI#185 (comment)

@abraunegg
Copy link
Owner

@emirvmendoza

This issue was never seen in >12 months of testing, it could be unique to your environment.
Please can you stop all 'onedrive' processes , update your application with the latest from the OpenSUSE Repository and then retest please.

The reason for this is, the updated OpenSuSE package deployed today will help provide debug details for this:

??:? [0x5ace75d7b92f]
??:? [0x5ace75cf8ede]
??:? [0x5ace75d2f970]
??:? [0x5ace75d28cc7]
??:? [0x5ace75d215b8]
??:? [0x5ace75d1fcd1]
??:? [0x5ace75dd28a6]
??:? [0x5ace75dd084b]
??:? void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int function(char[][])*).runAll() [0x700e3937edcc]
??:? _d_run_main2 [0x700e3937ebe6]
??:? _d_run_main [0x700e3937ea3c]
??:? [0x5ace75dfbfa1]
??:? [0x700e38a2a1c9]
??:? __libc_start_main [0x700e38a2a28a]
??:? [0x5ace75cea254]

Without this being correctly decoded / debuged in your environment, this issue cannot be investigated to be resolved.

This needs action on your behalf.

@abraunegg
Copy link
Owner

@emirvmendoza How reproducible is this ?

Happens every time I run "onedrive --confdir='/home/[REDACT]/.config/onedrive/accounts/[REDACT]' --monitor -v"

Triggered when I installed the latest update to onedrive client

Goes away when I apply the fix described here: bpozdena/OneDriveGUI#185 (comment)

Please backout your 'fix' and trigger the issue again please ......

I need to understand the root cause.

@abraunegg abraunegg added the Local Environment Issue Cannot locally reproduce issue label Sep 18, 2024
@emirvmendoza
Copy link
Author

@emirvmendoza How reproducible is this ?

Happens every time I run "onedrive --confdir='/home/[REDACT]/.config/onedrive/accounts/[REDACT]' --monitor -v"
Triggered when I installed the latest update to onedrive client
Goes away when I apply the fix described here: bpozdena/OneDriveGUI#185 (comment)

Please backout your 'fix' and trigger the issue again please ......

I need to understand the root cause.

Backed out the "fix" and triggered issue again. Sent two logs to the email address indicated at https://github.com/abraunegg/onedrive/wiki/Generate-debug-log-for-support

abraunegg added a commit that referenced this issue Sep 18, 2024
* If 'sync_list' is being used, and the file online contains URL encoded items, and cannot be URL decoded, catch the exception generated and generate an error message regarding the issue to advise the user to rename the offending item online.
@abraunegg
Copy link
Owner

@emirvmendoza
I have been able to replicate the issue and generated a PR to resolve this particular issue.

Please can you compile the following PR:

git clone https://github.com/abraunegg/onedrive.git
cd onedrive
git fetch origin pull/2817/head:pr2817
git checkout pr2817

To build the PR, please follow the steps to prepare your system to build the client as detailed here: https://github.com/abraunegg/onedrive/blob/master/docs/install.md#building-from-source---high-level-requirements

When building the client, please use the following:

./configure --enable-debug make clean; make;

To run the PR, you need to run the client from the PR build directory:

./onedrive <any other options needed>

To install the PR, you will need to perform sudo make install to install the PR version to your system.

When running the PR, your version should be: onedrive v2.5.0-3-g56d2006 or greater.

When the client encounters files online that it cannot 'decode' the following error messages will be printed:

....
Configuring Global Azure AD Endpoints
Fetching items from the OneDrive API for Drive ID: b!bO8V7s9SSk6r7mWHpIjURotN33W1W2tEv3OXV_oFIdQimEdOHR-1So7CqeT1MfHA ...ERROR: Unable to URL Decode path: Expected two hexadecimal digits after '%'
ERROR: To resolve, rename this item online: /bad_url_decode/BTINserye%20Anti-Terror%20Law%20sa%20Wikang%20Filipino%20-%2.mp4
CAUTION:    The JSON element transmitted by the Microsoft OneDrive API includes HTML URL encoded items, which may complicate pattern matching and potentially lead to synchronisation problems for this item.
 
Processing 2 applicable changes and items received from Microsoft OneDrive . 
Number of items to download from Microsoft OneDrive: 1
Downloading file: bad_url_decode/BTINserye%20Anti-Terror%20Law%20sa%20Wikang%20Filipino%20-%2.mp4 ... done
Performing a database consistency and integrity check on locally stored data . 
Scanning the local file system '~/OneDrive' for new data to upload . 
....

@abraunegg abraunegg added this to the v2.5.1 milestone Sep 18, 2024
@emirvmendoza
Copy link
Author

Thank you. OneDrive client works fine after compiling and running the PR using Terminal. Provided log to email.

@abraunegg
Copy link
Owner

Thanks for confirmation - will merge this fix into 'master'

abraunegg added a commit that referenced this issue Sep 18, 2024
* If 'sync_list' is being used, and the file online contains URL encoded items, and cannot be URL decoded, catch the exception generated and generate an error message regarding the issue to advise the user to rename the offending item online.
@emirvmendoza
Copy link
Author

Thank you again. Closing now.

@abraunegg
Copy link
Owner

I am keeping this open for the moment. Unfortunately, if closed, and someone else has the same issue, they generally open another issue .... even though its resolved and closed ... case in-point 2810 and 2813 ....

@pililac
Copy link

pililac commented Sep 23, 2024

Just wanted to note that I'm having the same issue. Synchronization stops with std.uri.URIException@/usr/lib/ldc/x86_64-linux-gnu/include/d/std/uri.d(228) every time when using a sync-list file. No problems without. I'm circumventing the problem right now by synchronizing everything, but I'm looking forward to a fix. I'm on Fedora KDE 40 and try to synchronize my data from my Windows 10 desktop. I use onedrive 2.5.0.

@abraunegg
Copy link
Owner

@pililac
The fix is in 'master' already.

Please build your client from source to get this particular fix

This was linked to pull requests Sep 25, 2024
@abraunegg
Copy link
Owner

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.

Repository owner locked as resolved and limited conversation to collaborators Oct 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug Something isn't working Fixed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants