Note: Im splitting this out from the previous bug to be its own issue for tracking purposes.
We found a bug in the config listeners for Downloader and Synchronizer, where if the config file has max_concurrent_uploads/downloads = 20, those thread pools never have a limit imposed on start. If the OS decides we've started too many threads too fast, or we hit a thread limit, that could cause a wide range of problems. Still, a scan through the code looking for races would be justified
This only applies to the value of 20 for each variable (max_concurrent_uploads|max_concurrent_downloads). Setting the variable to any other value will bypass the issue and apply the limit.