desktop icon indicating copy to clipboard operation
desktop copied to clipboard

[Bug]: Desktop clients of different operating systems on one instance and file name encoding

Open gklimm opened this issue 7 months ago • 7 comments

⚠️ Before submitting, please verify the following: ⚠️

Bug description

Unfortunately, this has always been a problem with the Linux client, as far as I can tell: As soon as a Windows client accesses the same data, file names are created that the Linux client clearly has a problem with.

Steps to reproduce

Share directories with German umlauts, for example, and let the desktop client from Windows and Linux access the structure in parallel.

Expected behavior

Normal synchronisation

Which files are affected by this bug

Files with German umlauts

Operating system

Linux

Which version of the operating system you are running.

Debian GNU/Linux 12 (bookworm)

Package

Distro package manager

Nextcloud Server version

31.0.5

Nextcloud Desktop Client version

3.16.50-20250611.055844.b49003e408-1.0~bookworm1

Is this bug present after an update or on a fresh install?

Fresh desktop client install

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

Are you using an external user-backend?

  • [x] Default internal user-backend
  • [ ] LDAP/ Active Directory
  • [ ] SSO - SAML
  • [ ] Other

Nextcloud Server logs


Additional info

strace nextcloud:

[...] access("[Filename with German Umlaut]", F_OK) = 0 openat(AT_FDCWD, "/usr/share/locale/de_DE.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de_DE.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de_DE/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) openat(AT_FDCWD, "/usr/share/locale/de/LC_MESSAGES/libc.mo", O_RDONLY) = 83 newfstatat(83, "", {st_mode=S_IFREG|0644, st_size=150826, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 150826, PROT_READ, MAP_PRIVATE, 83, 0) = 0x7fad4847a000 close(83) = 0 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 83 newfstatat(83, "", {st_mode=S_IFREG|0644, st_size=27028, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 27028, PROT_READ, MAP_SHARED, 83, 0) = 0x7fad494bf000 close(83) = 0 futex(0x7fad897f2a4c, FUTEX_WAKE_PRIVATE, 2147483647) = 0 write(2, "terminate called after throwing "..., 48terminate called after throwing an instance of ') = 48 write(2, "std::filesystem::__cxx11::filesy"..., 42std::filesystem::__cxx11::filesystem_error) = 42 write(2, "'\n", 2' ) = 2 write(2, " what(): ", 11 what(): ) = 11 write(2, "filesystem error: Cannot convert"..., 116filesystem error: Cannot convert character sequence: Ungültiges oder unvollständiges Multi-Byte- oder Wide-Zeichen) = 116 write(2, "\n", 1 ) = 1 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 gettid() = 77327 getpid() = 77327 tgkill(77327, 77327, SIGABRT) = 0 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=77327, si_uid=1000} --- +++ killed by SIGABRT (core dumped) +++ Abgebrochen (Speicherabzug geschrieben)

gklimm avatar Jun 12 '25 06:06 gklimm

I cannot reproduce with a self build from master branch running on linux syncing files created on Windows with German Umlaut. strace output is not enough either you could share some logs with us ? maybe with some test data or I can provide a secure upload share link or capture a stack with gdb ? did you tested with the native Debian package ? They do provide 3.16.4 that may be enough for your needs alternatively can you reproduce with our official AppImage package (https://github.com/nextcloud-releases/desktop/releases/tag/v3.16.5)

mgallien avatar Jun 12 '25 08:06 mgallien

I cannot rule out that the problem is coming from iOS or another client, as some members of the team also synchronise there. Should I generate a core dump if that helps?

gklimm avatar Jun 12 '25 12:06 gklimm

@gklimm the backtrace would be unusable for me as I would miss the appropriate debug symbols to read it what would be the best is to run the client with gdb (if you know how do do it) and print the stack after the crash (usually the bt gdb command)

mgallien avatar Jun 13 '25 07:06 mgallien

#0 __pthread_kill_implementation (threadid=, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44 #1 0x00007fffeb6a9f4f in __pthread_kill_internal (signo=6, threadid=) at ./nptl/pthread_kill.c:78 #2 0x00007fffeb65afb2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007fffeb645472 in __GI_abort () at ./stdlib/abort.c:79 #4 0x00007fffeb49d919 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007fffeb4a8e1a in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x00007fffeb4a7e89 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 #7 0x00007fffeb4a85a6 in __gxx_personality_v0 () from /lib/x86_64-linux-gnu/libstdc++.so.6 #8 0x00007ffff7aa9934 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1 #9 0x00007ffff7aaa38d in _Unwind_Resume () from /lib/x86_64-linux-gnu/libgcc_s.so.1 #10 0x00007ffff7db0973 in auto std::filesystem::__cxx11::path::_S_convert<wchar_t>(wchar_t const*, wchar_t const*) () from /lib/x86_64-linux-gnu/libnextcloudsync.so.0 #11 0x00007ffff7dacc49 in OCC::FileSystem::setFolderPermissions(QString const&, OCC::FileSystem::FolderPermissions, bool*) () from /lib/x86_64-linux-gnu/libnextcloudsync.so.0 #12 0x00007ffff7de0b04 in ?? () from /lib/x86_64-linux-gnu/libnextcloudsync.so.0 #13 0x00007ffff7de10ba in OCC::PropagateDirectory::slotSubJobsFinished(OCC::SyncFileItem::Status) () from /lib/x86_64-linux-gnu/libnextcloudsync.so.0 #14 0x00007fffeb96cb36 in ?? () from /lib/x86_64-linux-gnu/libQt6Core.so.6 #15 0x00007ffff7d0bd6e in OCC::PropagatorJob::finished(OCC::SyncFileItem::Status) () from /lib/x86_64-linux-gnu/libnextcloudsync.so.0 #16 0x00007fffeb95f9b8 in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt6Core.so.6 #17 0x00007ffff6f82a53 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt6Widgets.so.6 #18 0x00007fffeb9238b8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt6Core.so.6 #19 0x00007fffeb923a97 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt6Core.so.6 #20 0x00007fffebb0a353 in ?? () from /lib/x86_64-linux-gnu/libQt6Core.so.6 #21 0x00007fffed71c749 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #22 0x00007fffed71c9d8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #23 0x00007fffed71ca6c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #24 0x00007fffebb07f7c in QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) () from /lib/x86_64-linux-gnu/libQt6Core.so.6 #25 0x00007fffeb92d57a in QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) () from /lib/x86_64-linux-gnu/libQt6Core.so.6 #26 0x00007fffeb9266a8 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt6Core.so.6 #27 0x000055555562c13e in ?? () #28 0x00007fffeb64624a in __libc_start_call_main (main=main@entry=0x55555562bd60, argc=argc@entry=1, argv=argv@entry=0x7fffffffdab8) at ../sysdeps/nptl/libc_start_call_main.h:58 #29 0x00007fffeb646305 in __libc_start_main_impl (main=0x55555562bd60, argc=1, argv=0x7fffffffdab8, init=, fini=, rtld_fini=, stack_end=0x7fffffffdaa8) at ../csu/libc-start.c:360 #30 0x0000555555690ce1 in ?? ()

gklimm avatar Jun 14 '25 17:06 gklimm

Same issue raised today on my Linux Mint 22.1 Xia host:

dpkg -l | grep nextcloud
ii  libnextcloudsync0:amd64                          3.16.5-20250613.191603.930e6e637-1.0~jammy1 amd64        Nextcloud folder synchronization - libraries
ii  nemo-nextcloud                                   3.16.5-20250613.191603.930e6e637-1.0~jammy1 all          Nextcloud integration for Nemo
ii  nextcloud-desktop                                3.16.5-20250613.191603.930e6e637-1.0~jammy1 amd64        Nextcloud folder synchronization tool
ii  nextcloud-desktop-common                         3.16.5-20250613.191603.930e6e637-1.0~jammy1 all          Nextcloud folder synchronization - common data
ii  nextcloud-desktop-doc                            3.16.5-20250613.191603.930e6e637-1.0~jammy1 all          Nextcloud folder synchronization - documentation
ii  nextcloud-desktop-l10n                           3.16.5-20250613.191603.930e6e637-1.0~jammy1 all          Nextcloud folder synchronization - localization

I wonder if there are separated debug symbol files (https://github.com/GabrielMajeri/separate-symbols) for nextcloud client? I can install such files and inspect it with gdb.

Regards, Stefan

(gdb) where
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007fffeac4527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007fffeac288ff in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007fffeb0a5ff5 in ??? () at /lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007fffeb0bb0da in ??? () at /lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007fffeb0a58e6 in __cxa_call_terminate () at /lib/x86_64-linux-gnu/libstdc++.so.6
#8  0x00007fffeb0ba8ba in __gxx_personality_v0 () at /lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00007fffed33fb06 in ??? () at /lib/x86_64-linux-gnu/libgcc_s.so.1
#10 0x00007fffed3405cd in _Unwind_Resume () at /lib/x86_64-linux-gnu/libgcc_s.so.1
#11 0x00007ffff7da646a in auto std::filesystem::__cxx11::path::_S_convert<wchar_t>(wchar_t const*, wchar_t const*) () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#12 0x00007ffff7da1cdb in OCC::FileSystem::setFolderPermissions(QString const&, OCC::FileSystem::FolderPermissions, bool*) () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#13 0x00007ffff7dda18a in ??? () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#14 0x00007ffff7dda713 in OCC::PropagateDirectory::slotSubJobsFinished(OCC::SyncFileItem::Status) () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#15 0x00007fffeb583d9b in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#16 0x00007ffff7cf5a02 in OCC::PropagatorJob::finished(OCC::SyncFileItem::Status) () at /lib/x86_64-linux-gnu/libnextcloudsync.so.0
#17 0x00007fffeb576683 in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#18 0x00007ffff6f8b3b0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#19 0x00007fffeb538448 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#20 0x00007fffeb538635 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#21 0x00007fffeb733a8f in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#22 0x00007ffff6d145c5 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff6d73737 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff6d13a63 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007fffeb7315ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#26 0x00007fffeb5429a3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#27 0x00007fffeb53b35e in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#28 0x0000555555625532 in ??? ()
#29 0x00007fffeac2a1ca in __libc_start_call_main (main=main@entry=0x5555556250d0, argc=argc@entry=1, argv=argv@entry=0x7fffffffdf48) at ../sysdeps/nptl/libc_start_call_main.h:58
#30 0x00007fffeac2a28b in __libc_start_main_impl (main=0x5555556250d0, argc=1, argv=0x7fffffffdf48, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdf38)
    at ../csu/libc-start.c:360

armadillo11 avatar Jun 15 '25 08:06 armadillo11

Same thing here after an update on an Ubuntu 22.04.5:

Client 3.16.4-20250429.181655.0febbee77-1.0~jammy1 was working just fine

updated client 3.16.5-20250613.191603.930e6e637-1.0~jammy1 does the same convert error:

terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character
Abandon (core dumped)

Package coming from ppa:

deb https://ppa.launchpadcontent.net/nextcloud-devs/client/ubuntu/ jammy main

Not sure how to help you more. I have a few logs in /tmp/Nextcloud-crash.log but it concludes with "FINISHED WITH STATUS "OK"", so...

Found the previous working 3.16.4 packages here: https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client/+build/30661590 If anybody needs them, they just work.

alaunay avatar Jun 15 '25 11:06 alaunay

Just tried 3.16.6: this is still unusable, the problem stays.

alaunay avatar Jun 21 '25 09:06 alaunay

I have the same issue on linux mint 21.3. Nextcloud client just doesn't work at all.

➜  ~ nextcloud
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: Cannot convert character sequence: Chaîne multi-octets ou étendue de caractères invalide ou incomplète
[1]    53527 IOT instruction (core dumped)  nextcloud

phenix-factory avatar Jun 22 '25 13:06 phenix-factory

I managed to get the Flatpak working by copying the content of the .config/Nextcloud directory into the Flatpak config. It works, but if this issue could still be fixed, I guess that would be nice.

phenix-factory avatar Jun 22 '25 14:06 phenix-factory

Flatpak also doesn't work anymore. My test suggests that a special character in a folder or file might be an issue. I use French and often use éèï etc. Nextcloud is completely useless without sync and both of my computers can't sync.

How can I rollback to 3.14?

phenix-factory avatar Jun 24 '25 08:06 phenix-factory

Can reproduce on latest version from the alpha ppa, as well as the latest from stable ppa (Ubuntu 22.04). Temporarily mitigated by using an older 3.16.x AppImage.

sdomi avatar Jun 25 '25 13:06 sdomi

please test the AppImage in this PR https://github.com/nextcloud/desktop/pull/8525 ? https://github.com/nextcloud/desktop/actions/runs/16744050472/artifacts/3688723559

mgallien avatar Aug 05 '25 09:08 mgallien

regarding other questions, the best place to ask for support is to go to the forum there is an high chance other people will be able to support you with regard to more general questions we do not provide support on github. We only work on feature suggestions or bugs via github

mgallien avatar Aug 05 '25 09:08 mgallien

I am really unsure if the ubuntu PPA community package archive has debug symbols without them, the stack trace are missing information in any case, thanks for them because they still show that there is an high chance the PR may fix your crash issues

mgallien avatar Aug 05 '25 09:08 mgallien

This issue has been automatically marked as stale because it has not had recent activity and seems to be missing some essential information. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Sep 02 '25 16:09 github-actions[bot]