=> So there are a lot of things that have changed, on this device, compared to what we have in the database. Or, the files are new (not in the database already). These files should be synced to other devices.
Or, things haven’t changed locally but just reading the file metadata (listing directories and checking modification times etc) and database takes a long time because there’s a lot of it and disk access is slow and/or not cached in RAM.
=> In addition to the changes detected above (if any), there are a lot of files that are older than the files on other devices. These need to be synced to this device from someone else.
Scanning does not result in things to sync. Scanning results in things for others to sync.
Out of memory, yes. To be sure of the cause (since there is confusion above), you can capture a heap profile.
Agreed. I think making it just a limit on queue length is a good enough proxy for this and easier to understand though. I filed it.