desktop icon indicating copy to clipboard operation
desktop copied to clipboard

[Bug]: Nextcloud desktop client (macOS) becomes unresponsive at 100% CPU

Open danrex opened this issue 1 year ago • 1 comments

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

Bug description

The desktop client starts syncing and then becomes unresponsive quickly. If I pause the sync right after the client starts then it does not crash.

Steps to reproduce

Unknown

Expected behavior

Desktop client should sync the files and stay responsive.

Which files are affected by this bug

I did not manage to deterministically pinpoint it to a specific file.

Operating system

macOS

Which version of the operating system you are running.

macOS Sonoma 14.7 (23H124)

Package

Official macOS 12+ universal pkg

Nextcloud Server version

29.0.7

Nextcloud Desktop Client version

3.14.1

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

Updated from a minor version (ex. 3.4.2 to 3.4.4)

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

{"reqId":"[REDACTED]","level":0,"time":"2024-10-21T17:23:38+00:00","remoteAddr":"[REDACTED]","user":"[REDACTED]","app":"text","method":"POST","url":"/remote.php/dav/bulk","message":"Reset document skipped in BeforeNodeWrittenEvent","userAgent":"Mozilla/5.0 (Macintosh) mirall/3.14.1daily (Nextcloud, macos-23.6.0 ClientArchitecture: arm64 OsArchitecture: arm64)","version":"29.0.7.1","exception":{"Exception":"OCP\Files\NotFoundException","Message":"","Code":0,"Trace":[{"file":"/usr/local/nextcloud/apps/text/lib/Listeners/BeforeNodeWrittenListener.php","line":60,"function":"getId","class":"OC\Files\Node\NonExistingFile","type":"->"},{"file":"/usr/local/nextcloud/lib/private/EventDispatcher/ServiceEventListener.php","line":86,"function":"handle","class":"OCA\Text\Listeners\BeforeNodeWrittenListener","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php","line":230,"function":"__invoke","class":"OC\EventDispatcher\ServiceEventListener","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/symfony/event-dispatcher/EventDispatcher.php","line":59,"function":"callListeners","class":"Symfony\Component\EventDispatcher\EventDispatcher","type":"->"},{"file":"/usr/local/nextcloud/lib/private/EventDispatcher/EventDispatcher.php","line":86,"function":"dispatch","class":"Symfony\Component\EventDispatcher\EventDispatcher","type":"->"},{"file":"/usr/local/nextcloud/lib/private/EventDispatcher/EventDispatcher.php","line":98,"function":"dispatch","class":"OC\EventDispatcher\EventDispatcher","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/HookConnector.php","line":93,"function":"dispatchTyped","class":"OC\EventDispatcher\EventDispatcher","type":"->"},{"file":"/usr/local/nextcloud/lib/private/legacy/OC_Hook.php","line":105,"function":"write","class":"OC\Files\Node\HookConnector","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":1287,"function":"emit","class":"OC_Hook","type":"::"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":1154,"function":"runHooks","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":683,"function":"basicOperation","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/Folder.php","line":192,"function":"file_put_contents","class":"OC\Files\View","type":"->"},{"function":"newFile","class":"OC\Files\Node\Folder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/LazyFolder.php","line":84,"function":"call_user_func_array"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/LazyFolder.php","line":463,"function":"__call","class":"OC\Files\Node\LazyFolder","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/lib/BulkUpload/BulkUploadPlugin.php","line":92,"function":"newFile","class":"OC\Files\Node\LazyFolder","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPost","class":"OCA\DAV\BulkUpload\BulkUploadPlugin","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/lib/Server.php","line":383,"function":"exec","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/remote.php","line":172,"args":["/usr/local/nextcloud/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/usr/local/nextcloud/lib/private/Files/Node/NonExistingFile.php","Line":52,"message":"Reset document skipped in BeforeNodeWrittenEvent","exception":{},"CustomMessage":"Reset document skipped in BeforeNodeWrittenEvent"}} {"reqId":"[REDACTED]","level":0,"time":"2024-10-21T17:23:38+00:00","remoteAddr":"[REDACTED]","user":"[REDACTED]","app":"no app in context","method":"POST","url":"/remote.php/dav/bulk","message":"dirty table reads: SELECT fileid FROM *PREFIX*filecache WHERE (storage = :dcValue1) AND (path_hash = :dcValue2)","userAgent":"Mozilla/5.0 (Macintosh) mirall/3.14.1daily (Nextcloud, macos-23.6.0 ClientArchitecture: arm64 OsArchitecture: arm64)","version":"29.0.7.1","exception":{"Exception":"Exception","Message":"dirty table reads: SELECT fileid FROM *PREFIX*filecache WHERE (storage = :dcValue1) AND (path_hash = :dcValue2)","Code":0,"Trace":[{"file":"/usr/local/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":348,"function":"executeQuery","class":"OC\DB\Connection","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":384,"function":"executeQuery","class":"Doctrine\DBAL\Query\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":280,"function":"execute","class":"Doctrine\DBAL\Query\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Cache.php","line":497,"function":"execute","class":"OC\DB\QueryBuilder\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Cache.php","line":515,"function":"getId","class":"OC\Files\Cache\Cache","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Updater.php","line":258,"function":"getParentId","class":"OC\Files\Cache\Cache","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Updater.php","line":145,"function":"correctParentStorageMtime","class":"OC\Files\Cache\Updater","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":298,"function":"update","class":"OC\Files\Cache\Updater","type":"->","args":["*** sensitive parameters replaced "]},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":1188,"function":"writeUpdate","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":683,"function":"basicOperation","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/Folder.php","line":192,"function":"file_put_contents","class":"OC\Files\View","type":"->"},{"function":"newFile","class":"OC\Files\Node\Folder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/LazyFolder.php","line":84,"function":"call_user_func_array"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/LazyFolder.php","line":463,"function":"__call","class":"OC\Files\Node\LazyFolder","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/lib/BulkUpload/BulkUploadPlugin.php","line":92,"function":"newFile","class":"OC\Files\Node\LazyFolder","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPost","class":"OCA\DAV\BulkUpload\BulkUploadPlugin","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/lib/Server.php","line":383,"function":"exec","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/remote.php","line":172,"args":["/usr/local/nextcloud/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/usr/local/nextcloud/lib/private/DB/Connection.php","Line":320,"message":"dirty table reads: SELECT fileid FROM *PREFIX*filecache WHERE (storage = :dcValue1) AND (path_hash = :dcValue2)","tables":["oc_authtoken","oc_filecache"],"reads":["oc_filecache"],"exception":{},"CustomMessage":"dirty table reads: SELECT fileid FROM *PREFIX*filecache WHERE (storage = :dcValue1) AND (path_hash = :dcValue2)"}} {"reqId":"[REDACTED]","level":0,"time":"2024-10-21T17:23:38+00:00","remoteAddr":"[REDACTED]","user":"[REDACTED]","app":"no app in context","method":"POST","url":"/remote.php/dav/bulk","message":"dirty table reads: SELECT path FROM *PREFIX*filecache WHERE (storage = :dcValue1) AND (fileid = :dcValue2)","userAgent":"Mozilla/5.0 (Macintosh) mirall/3.14.1daily (Nextcloud, macos-23.6.0 ClientArchitecture: arm64 OsArchitecture: arm64)","version":"29.0.7.1","exception":{"Exception":"Exception","Message":"dirty table reads: SELECT path FROM *PREFIX*filecache WHERE (storage = :dcValue1) AND (fileid = :dcValue2)","Code":0,"Trace":[{"file":"/usr/local/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":348,"function":"executeQuery","class":"OC\DB\Connection","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":384,"function":"executeQuery","class":"Doctrine\DBAL\Query\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":280,"function":"execute","class":"Doctrine\DBAL\Query\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Cache.php","line":1102,"function":"execute","class":"OC\DB\QueryBuilder\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Cache.php","line":419,"function":"getPathById","class":"OC\Files\Cache\Cache","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Updater.php","line":264,"function":"update","class":"OC\Files\Cache\Cache","type":"->","args":[" sensitive parameters replaced "]},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Updater.php","line":145,"function":"correctParentStorageMtime","class":"OC\Files\Cache\Updater","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":298,"function":"update","class":"OC\Files\Cache\Updater","type":"->","args":[" sensitive parameters replaced ***"]},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":1188,"function":"writeUpdate","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":683,"function":"basicOperation","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/Folder.php","line":192,"function":"file_put_contents","class":"OC\Files\View","type":"->"},{"function":"newFile","class":"OC\Files\Node\Folder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/LazyFolder.php","line":84,"function":"call_user_func_array"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/LazyFolder.php","line":463,"function":"__call","class":"OC\Files\Node\LazyFolder","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/lib/BulkUpload/BulkUploadPlugin.php","line":92,"function":"newFile","class":"OC\Files\Node\LazyFolder","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPost","class":"OCA\DAV\BulkUpload\BulkUploadPlugin","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/lib/Server.php","line":383,"function":"exec","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/remote.php","line":172,"args":["/usr/local/nextcloud/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/usr/local/nextcloud/lib/private/DB/Connection.php","Line":320,"message":"dirty table reads: SELECT path FROM *PREFIX*filecache WHERE (storage = :dcValue1) AND (fileid = :dcValue2)","tables":["oc_authtoken","oc_filecache"],"reads":["oc_filecache"],"exception":{},"CustomMessage":"dirty table reads: SELECT path FROM *PREFIX*filecache WHERE (storage = :dcValue1) AND (fileid = :dcValue2)"}} {"reqId":"[REDACTED]","level":0,"time":"2024-10-21T17:23:38+00:00","remoteAddr":"[REDACTED]","user":"[REDACTED]","app":"no app in context","method":"POST","url":"/remote.php/dav/bulk","message":"dirty table reads: SELECT filecache.fileid, storage, path, path_hash, filecache.parent, filecache.name, mimetype, mimepart, size, mtime, storage_mtime, encrypted, etag, filecache.permissions, checksum, unencrypted_size, metadata_etag, creation_time, upload_time, meta.json AS meta_json, meta.sync_token AS meta_sync_token FROM *PREFIX*filecache filecache LEFT JOIN *PREFIX*filecache_extended fe ON filecache.fileid = fe.fileid LEFT JOIN *PREFIX*files_metadata meta ON filecache.fileid = meta.file_id WHERE (storage = :dcValue1) AND (path_hash = :dcValue2)","userAgent":"Mozilla/5.0 (Macintosh) mirall/3.14.1daily (Nextcloud, macos-23.6.0 ClientArchitecture: arm64 OsArchitecture: arm64)","version":"29.0.7.1","exception":{"Exception":"Exception","Message":"dirty table reads: SELECT filecache.fileid, storage, path, path_hash, filecache.parent, filecache.name, mimetype, mimepart, size, mtime, storage_mtime, encrypted, etag, filecache.permissions, checksum, unencrypted_size, metadata_etag, creation_time, upload_time, meta.json AS meta_json, meta.sync_token AS meta_sync_token FROM *PREFIX*filecache filecache LEFT JOIN *PREFIX*filecache_extended fe ON filecache.fileid = fe.fileid LEFT JOIN *PREFIX*files_metadata meta ON filecache.fileid = meta.file_id WHERE (storage = :dcValue1) AND (path_hash = :dcValue2)","Code":0,"Trace":[{"file":"/usr/local/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":348,"function":"executeQuery","class":"OC\DB\Connection","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":384,"function":"executeQuery","class":"Doctrine\DBAL\Query\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":280,"function":"execute","class":"Doctrine\DBAL\Query\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/Cache.php","line":164,"function":"execute","class":"OC\DB\QueryBuilder\QueryBuilder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Cache/HomeCache.php","line":57,"function":"get","class":"OC\Files\Cache\Cache","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":1336,"function":"get","class":"OC\Files\Cache\HomeCache","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":1383,"function":"getCacheEntry","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/HookConnector.php","line":226,"function":"getFileInfo","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/HookConnector.php","line":115,"function":"getNodeForPath","class":"OC\Files\Node\HookConnector","type":"->"},{"file":"/usr/local/nextcloud/lib/private/legacy/OC_Hook.php","line":105,"function":"postCreate","class":"OC\Files\Node\HookConnector","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":1287,"function":"emit","class":"OC_Hook","type":"::"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":1214,"function":"runHooks","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/View.php","line":683,"function":"basicOperation","class":"OC\Files\View","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/Folder.php","line":192,"function":"file_put_contents","class":"OC\Files\View","type":"->"},{"function":"newFile","class":"OC\Files\Node\Folder","type":"->"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/LazyFolder.php","line":84,"function":"call_user_func_array"},{"file":"/usr/local/nextcloud/lib/private/Files/Node/LazyFolder.php","line":463,"function":"__call","class":"OC\Files\Node\LazyFolder","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/lib/BulkUpload/BulkUploadPlugin.php","line":92,"function":"newFile","class":"OC\Files\Node\LazyFolder","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpPost","class":"OCA\DAV\BulkUpload\BulkUploadPlugin","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/lib/Server.php","line":383,"function":"exec","class":"Sabre\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\DAV\Server","type":"->"},{"file":"/usr/local/nextcloud/remote.php","line":172,"args":["/usr/local/nextcloud/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/usr/local/nextcloud/lib/private/DB/Connection.php","Line":320,"message":"dirty table reads: SELECT filecache.fileid, storage, path, path_hash, filecache.parent, filecache.name, mimetype, mimepart, size, mtime, storage_mtime, encrypted, etag, filecache.permissions, checksum, unencrypted_size, metadata_etag, creation_time, upload_time, meta.json AS meta_json, meta.sync_token AS meta_sync_token FROM *PREFIX*filecache filecache LEFT JOIN *PREFIX*filecache_extended fe ON filecache.fileid = fe.fileid LEFT JOIN *PREFIX*files_metadata meta ON filecache.fileid = meta.file_id WHERE (storage = :dcValue1) AND (path_hash = :dcValue2)","tables":["oc_authtoken","oc_filecache"],"reads":["oc_filecache","oc_filecache_extended","oc_files_metadata"],"exception":{},"CustomMessage":"dirty table reads: SELECT filecache.fileid, storage, path, path_hash, filecache.parent, filecache.name, mimetype, mimepart, size, mtime, storage_mtime, encrypted, etag, filecache.permissions, checksum, unencrypted_size, metadata_etag, creation_time, upload_time, meta.json AS meta_json, meta.sync_token AS meta_sync_token FROM *PREFIX*filecache filecache LEFT JOIN *PREFIX*filecache_extended fe ON filecache.fileid = fe.fileid LEFT JOIN *PREFIX*files_metadata meta ON filecache.fileid = meta.file_id WHERE (storage = :dcValue1) AND (path_hash = :dcValue2)"}}

Additional info

  • The server is running Ubuntu 22.04, but the problem was already present on 20.04.
  • There is 48GB of free space on the server and more than 150GB on the client.
  • I ran occ files:scan --all and occ maintenance:repair.
  • There are no configuration warnings.
  • I tried to pinpoint the issue to specific directories or files but did not reach any conclusive results. I tried both excluding directories via the ignore list and manually removing and re-adding them on both the client and server. At one point or another, the client always becomes unresponsive.
  • I've had this issue across multiple client and server versions. Unfortunately, I don't remember when it started on the client, but on the server, it has been present since before the "Hub" versions were introduced.
  • I tried removing the ".sync" files as suggested in this comment, but with no success.
  • I tried downgrading to several versions, including 3.4.2, but all showed the same symptoms.
  • An excerpt of the server logs is attached. Happy to provide more if needed. Also happy to provide the client logs, but I wasn't sure if they potentially contain any sensitive information.

danrex avatar Oct 21 '24 17:10 danrex

If you are using the Mac OS VFS client, you might be experiencing the same issue decribed here: #7326

marcotrevisan avatar Oct 21 '24 20:10 marcotrevisan

If you are using the Mac OS VFS client, you might be experiencing the same issue decribed here: #7326

Thanks @marcotrevisan. I’m using the 'classic' client. I reviewed the issue for any clues beforehand, but unfortunately, it doesn’t seem related.

danrex avatar Oct 22 '24 07:10 danrex

Same problem here on 15.0.1 (24A348) with both versions of the client (VFS or not)

philippgerard avatar Oct 24 '24 06:10 philippgerard

I have the same issue. I have tried using older versions that used to work but the apps still becomes unresponsive with 100% CPU usage.

MenacingMight avatar Nov 05 '24 02:11 MenacingMight

I have the same problem. becomes unresponsive with 100% CPU. We urgently need a solution here....

Cheers

rondoron avatar Nov 11 '24 12:11 rondoron

I don't know whether it is relevant to this, but for me on Ubuntu 24.04, the deb version becomes unresponsive and starts eating more and more RAM until it gets OOM-killed. The behavior is the same on both the latest 3.14.3 version as well as 3.11 from the Ubuntu repos. Apparently, there are some files that trigger it to do so but I see no logic whatsoever, these are just random files which sync perfectly well on my other laptop with the same Ubuntu 24.04 system. I tried deleting configuration files, deleting the sync file, deleting the entire folder and syncing it from scratch, but it all didn't help much. The AppImage version just randomly dies. The flathub version so far seems to stay put. I don't know whether this bug has anything to do with Nextcloud or I somehow managed to bork my Ubuntu.

undefiened avatar Nov 13 '24 09:11 undefiened

I don't know whether it is relevant to this, but for me on Ubuntu 24.04, the deb version becomes unresponsive and starts eating more and more RAM until it gets OOM-killed. The behavior is the same on both the latest 3.14.3 version as well as 3.11 from the Ubuntu repos. Apparently, there are some files that trigger it to do so but I see no logic whatsoever, these are just random files which sync perfectly well on my other laptop with the same Ubuntu 24.04 system. I tried deleting configuration files, deleting the sync file, deleting the entire folder and syncing it from scratch, but it all didn't help much. The AppImage version just randomly dies. The flathub version so far seems to stay put. I don't know whether this bug has anything to do with Nextcloud or I somehow managed to bork my Ubuntu.

Maybe related to the issue that was shared above (if you use the VFS client)?

danrex avatar Nov 13 '24 11:11 danrex

Maybe related to the issue that was shared above (if you use the VFS client)?

No, I don't think VFS support is implemented for Linux.

undefiened avatar Nov 13 '24 16:11 undefiened

My Nextcloud desktop client also eats 100% CPU and is totally unresponsive, version 3.14.3, AppImage, Fedora 41 (Linux).

So probably not simply @undefiened having borked their Ubuntu...

bovender avatar Nov 16 '24 20:11 bovender

I ran strace on my Nextcloud client. I found out that the client tried to descent through an Directory symlink. After i removed the symlink, the Client behaved normally again. Could someone else check if their problem could stem from this? Previous versions Ignored the Directory since it was an symlink.

stop5 avatar Nov 18 '24 10:11 stop5

I ran strace on my Nextcloud client.

@stop5 bear with me, I'll report back (note to self: finally stop forgetting about strace when debugging stuff...)

BTW, I was called away from my laptop this morning while the Nextcloud client was at 100% CPU (I had htop running on the side) and when I returned ~1 hour later, Nextcloud was idling.

Furthermore, right now I have the strace nexcloud... running in a terminal and the process is idling, too. Need to find out what exactly triggers the high CPU usage which I've seen on my machine several days in a row now.

bovender avatar Nov 18 '24 14:11 bovender

I also invested some more time to dig in deeper and it seems the problem might be related to a connection setting. I had "Upload Bandwidth" set to "Limit automatically". I changed that to "No limit" and the client is working fine for the first time in months. Fingers are still crossed though 🤞.

danrex avatar Nov 20 '24 17:11 danrex

I'm experiencing the same problem in opensuse Tumbleweed; it started with version 3.14.2 and is always present in 3.14.3 I installed today. I have "no limit" bandwidth selected, but alas! 100% CPU usage while syncing.

verga avatar Nov 20 '24 21:11 verga

Hey, I have the same issue on Linux as well. Some performance tracing shows that the CPU usage comes from constantly reallocating memory. Tracing that backwards leads to the following code: https://github.com/nextcloud/desktop/blob/907b07cc0968b515e585d9453d888bec0e91942c/src/libsync/syncengine.cpp#L1219-L1222 Here it becomes obvious that the string first is reallocated on every loop iteration and as _localDiscoveryPaths can easily contain thousands of paths this becomes very slow. For me it didn't finish within 30 minutes.

The code was introduced in #7291 and reverting this commit on the latest stable release (3.15) fixes the issue for me.

Diff-fusion avatar Nov 29 '24 14:11 Diff-fusion

Still the same with 3.15.1.

I've "killed" the client now in order to give my laptop's fans a rest. Hoping for a fix.

bovender avatar Dec 15 '24 16:12 bovender

I'm experiencing the same problem in opensuse Tumbleweed; it started with version 3.14.2 and is always present in 3.14.3 I installed today. I have "no limit" bandwidth selected, but alas! 100% CPU usage while syncing.

I'd like to confirm this find. To remove the limit remove entries below

[BWLimit]
downloadLimit=80
uploadLimit=10
useDownloadLimit=-1
useUploadLimit=-1

from config file: $HOME/Library/Preferences/Nextcloud/nextcloud.cfg

haloween avatar Dec 18 '24 11:12 haloween

The BWLimit does not change anything for me (I'm on Linux Opensuse) Still the same behavior with the last client 3.15.2

verga avatar Dec 18 '24 17:12 verga

Hey, I have the same issue on Linux as well. Some performance tracing shows that the CPU usage comes from constantly reallocating memory. Tracing that backwards leads to the following code:

desktop/src/libsync/syncengine.cpp

Lines 1219 to 1222 in 907b07c

const auto allPaths = std::accumulate(_localDiscoveryPaths.begin(), _localDiscoveryPaths.end(), QString{}, [] (auto first, auto second) -> QString { first += ", " + second; return first; });

Here it becomes obvious that the string first is reallocated on every loop iteration and as _localDiscoveryPaths can easily contain thousands of paths this becomes very slow. For me it didn't finish within 30 minutes. The code was introduced in #7291 and reverting this commit on the latest stable release (3.15) fixes the issue for me.

I also expirienced the 100% CPU used issue on an arch linux system using version 3.15.2. Using perf I could trace the cause to the memory allocation of building the allPaths QString.

Simply deleting the two statements solved the issue for me.

diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp
index 368d0f8c8..1df36bdf4 100644
--- a/src/libsync/syncengine.cpp
+++ b/src/libsync/syncengine.cpp
@@ -1216,13 +1216,6 @@ void SyncEngine::setLocalDiscoveryOptions(LocalDiscoveryStyle style, std::set<QS
     _localDiscoveryStyle = style;
     _localDiscoveryPaths = std::move(paths);
 
-    const auto allPaths = std::accumulate(_localDiscoveryPaths.begin(), _localDiscoveryPaths.end(), QString{}, [] (auto first, auto second) -> QString {
-                              first += ", " + second;
-                              return first;
-    });
-
-    qCInfo(lcEngine()) << "paths to discover locally" << allPaths;
-
     // Normalize to make sure that no path is a contained in another.
     // Note: for simplicity, this code consider anything less than '/' as a path separator, so for
     // example, this will remove "foo.bar" if "foo" is in the list. This will mean we might have

fischerling avatar Dec 30 '24 11:12 fischerling

Hello,

the client was enhanced significantly since the opening of this ticket. You can help us with a retest. If you are still encountering issues, please get back to us

Rello avatar Sep 12 '25 01:09 Rello