syncthing/lib/model
Eric P e8d3529fed
lib/model: Only handle relevant folder summaries (kqueue) (fixes #9183) (#9288)
On kqueue-systems, folders listen for folder summaries to (be able to)
warn for potential high resource usage. However, it listened for any
folder summary and not for the summary which matches the folder it's
about. This could cause that an unwatched folder causes a folder summary
containing more files than the threshold (10k), and the listening folder
(with the watcher enabled) triggers the warning.

This makes sure that only the folder summaries which are relevant to the
specific folder are being handled.

### Testing

- Fire up some kqueue-system (freebsd, I used).
- add folder A, disable the watcher, add 10001 files
- add folder B with the watcher enabled, no files are needed here

Before the change:
- add an item to folder A, trigger a rescan to speed up the process
- wait some seconds...warning triggered by folder B's
summarySubscription

After the change:
- Only a warning is triggered if the received folder summary matches the
folder which listens for the summaries
2023-12-13 12:34:24 +01:00
..
mocks lib/model: Use a single lock (phase two: cleanup) (#9276) 2023-12-11 22:06:45 +01:00
testdata all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00
blockpullreorderer.go lib/model: Add support for different puller block ordering (#6587) 2020-05-11 22:44:04 +01:00
blockpullreorderer_test.go all: Remove miscellaneous vestigial code (#7495) 2021-03-17 22:23:12 +01:00
debug.go all, lib/logger: Refactor SetDebug calls (#6054) 2019-10-04 13:03:34 +02:00
deviceactivity.go lib/model: Return index from deviceActivity.leastBusy 2021-11-26 12:07:43 +01:00
deviceactivity_test.go lib/model: Return index from deviceActivity.leastBusy 2021-11-26 12:07:43 +01:00
devicedownloadstate.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
devicedownloadstate_test.go all: Move remaining protos to use the vanity plugin (#7009) 2020-10-02 08:07:05 +02:00
doc.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
fakeconns_test.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
folder.go lib/model: Only handle relevant folder summaries (kqueue) (fixes #9183) (#9288) 2023-12-13 12:34:24 +01:00
folder_recvenc.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
folder_recvonly.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
folder_recvonly_test.go lib/model: Use a single lock (phase two: cleanup) (#9276) 2023-12-11 22:06:45 +01:00
folder_sendonly.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
folder_sendrecv.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
folder_sendrecv_test.go lib/model: Refactor folderRunners to use a serviceMap (#9071) 2023-09-02 16:42:46 +02:00
folder_sendrecv_unix.go all: Support syncing ownership (fixes #1329) (#8434) 2022-07-26 08:24:58 +02:00
folder_sendrecv_windows.go all: Support syncing ownership (fixes #1329) (#8434) 2022-07-26 08:24:58 +02:00
folder_summary.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
folder_test.go all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00
folderstate.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
indexhandler.go lib/model: Refactor folderRunners to use a serviceMap (#9071) 2023-09-02 16:42:46 +02:00
metrics.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
model.go lib/model: Use a single lock (phase two: cleanup) (#9276) 2023-12-11 22:06:45 +01:00
model_test.go lib/model: Use a single lock (phase two: cleanup) (#9276) 2023-12-11 22:06:45 +01:00
progressemitter.go all: Refactor the protocol/model interface a bit (ref #8981) (#9007) 2023-07-29 10:24:44 +02:00
progressemitter_test.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
queue.go lib/model: Optimize jobQueue performance and memory use (#8023) 2021-10-29 20:20:46 +02:00
queue_test.go all: Remove lib/util package (#9049) 2023-08-21 19:44:33 +02:00
requests_test.go lib/model: Use a single lock (phase two: cleanup) (#9276) 2023-12-11 22:06:45 +01:00
sentdownloadstate.go all: Fix various user-facing and non-user-facing typos (#8509) 2022-08-23 15:44:11 +02:00
service_map.go lib/model: Remove spurious "replacing service" failure event (ref #9271) 2023-12-11 07:43:40 +01:00
service_map_test.go lib/model: Refactor folderRunners to use a serviceMap (#9071) 2023-09-02 16:42:46 +02:00
sharedpullerstate.go all: Add Prometheus-style metrics to expose some internal performance counters (fixes #5175) (#9003) 2023-08-04 19:57:30 +02:00
sharedpullerstate_test.go all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00
testos_test.go all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00
testutils_test.go lib/model: Use a single lock (phase two: cleanup) (#9276) 2023-12-11 22:06:45 +01:00
util.go lib/model: Use a single lock (phase two: cleanup) (#9276) 2023-12-11 22:06:45 +01:00
utils_test.go all: Grand test refactor (fixes #8779, fixes #8799) 2023-05-09 10:01:57 +00:00