Paul Lorenz
18518041b7
Fix lock order inversion in ConnectionTracker. Fixes #4208
...
- releases the per-identity lock before acquiring the cmap shard lock when the scan
loop reaps an entry, establishing a single shard-lock-then-value-lock order
- extracts the entry removal into removeIfEmpty, which decides based on the value
currently in the map, so an identity that reconnects after the scan decided to
remove it is left alone
- takes the per-identity lock in the removal check, fixing an unsynchronized read of
the router map
- documents the lock ordering invariant on identityConnections
- adds tests covering concurrent scanning and connect/disconnect handling, entry
reaping, and reconnection between the scan's decision and the removal
- adds a Release 1.6.19 changelog entry
(cherry picked from commit 0451ca7ebc )
2026-07-31 14:08:53 -04:00
..
2024-08-08 10:22:42 -04:00
2024-03-21 10:10:07 -04:00
2025-09-19 16:47:48 -04:00
2024-07-09 16:11:01 -04:00
2025-05-21 11:49:39 -04:00
2024-07-09 16:11:01 -04:00
2023-12-06 17:36:37 -05:00
2025-09-02 21:55:01 -04:00
2025-06-18 09:18:13 -04:00
2024-09-12 10:29:50 -04:00
2025-05-21 11:49:39 -04:00
2025-05-21 11:49:39 -04:00
2025-05-21 11:49:39 -04:00
2025-08-05 09:51:00 -04:00
2024-11-12 18:45:08 -05:00
2023-09-28 23:34:28 -04:00
2025-05-21 11:49:39 -04:00
2026-06-12 13:53:53 -04:00
2026-06-12 13:53:53 -04:00
2025-06-16 13:57:42 -04:00
2024-07-09 16:11:01 -04:00
2025-06-18 11:24:16 -04:00
2024-07-09 16:11:01 -04:00
2023-12-06 17:36:37 -05:00
2024-07-09 16:11:01 -04:00
2023-12-06 17:36:37 -05:00
2026-07-31 14:08:53 -04:00
2025-08-26 09:29:50 -04:00
2024-11-12 18:45:08 -05:00
2024-07-09 16:11:01 -04:00
2024-07-12 15:33:17 -04:00
2025-08-26 09:28:54 -04:00
2025-06-17 09:32:51 -04:00
2024-07-09 16:11:01 -04:00
2023-12-06 17:36:37 -05:00
2024-07-26 17:06:01 -04:00
2024-07-09 16:11:01 -04:00
2025-08-26 09:28:54 -04:00
2025-05-29 16:05:33 -04:00
2025-05-01 17:41:00 -04:00
2025-05-01 17:41:00 -04:00
2025-05-01 17:41:00 -04:00
2025-05-01 17:41:00 -04:00
2025-03-26 11:24:17 -04:00
2025-08-26 09:28:54 -04:00
2025-03-17 10:05:15 -04:00
2025-08-26 09:29:50 -04:00
2025-02-07 14:21:49 -05:00
2025-02-07 14:21:49 -05:00
2023-08-04 09:48:06 -04:00
2024-10-29 11:49:37 -04:00
2026-07-31 14:08:53 -04:00
2025-06-17 09:32:51 -04:00
2023-12-06 17:36:37 -05:00
2023-12-06 17:36:37 -05:00
2025-06-17 09:32:51 -04:00
2024-07-09 16:11:01 -04:00
2025-07-11 20:56:11 -04:00
2025-07-11 20:56:11 -04:00
2026-04-03 18:29:56 -04:00
2025-08-05 09:15:27 -04:00
2024-03-21 10:10:07 -04:00
2024-07-09 16:11:01 -04:00
2023-09-28 23:34:28 -04:00
2024-07-09 16:11:01 -04:00
2025-02-07 15:17:42 -05:00
2023-12-19 10:52:42 +01:00
2022-06-30 17:45:08 -04:00
2023-12-19 10:52:42 +01:00
2023-12-19 10:52:42 +01:00
2023-12-19 10:52:42 +01:00
2023-12-06 17:36:37 -05:00
2023-12-19 10:52:42 +01:00
2022-06-30 17:45:08 -04:00
2023-12-19 10:52:42 +01:00
2023-12-19 10:52:42 +01:00
2023-12-06 17:36:37 -05:00
2023-12-06 17:36:37 -05:00
2023-12-06 17:36:37 -05:00
2023-12-06 17:36:37 -05:00
2024-07-09 16:11:01 -04:00
2022-06-30 17:45:08 -04:00
2022-06-30 17:45:08 -04:00
2022-06-30 17:45:08 -04:00
2022-06-30 17:45:08 -04:00
2022-06-30 17:45:08 -04:00
2022-10-10 16:56:51 -04:00
2025-05-29 12:40:00 -04:00
2026-04-03 18:29:56 -04:00
2024-07-09 16:11:01 -04:00
2025-06-17 09:32:51 -04:00
2025-06-17 09:32:51 -04:00
2024-07-09 16:11:01 -04:00
2023-12-06 17:36:37 -05:00
2024-07-09 16:11:01 -04:00
2024-07-09 16:11:01 -04:00
2024-07-09 16:11:01 -04:00
2023-12-06 17:36:37 -05:00
2023-12-06 17:36:37 -05:00
2025-09-02 15:37:02 -04:00
2024-03-21 10:10:07 -04:00
2025-04-02 15:28:59 -04:00
2024-11-12 18:45:08 -05:00
2025-08-26 09:29:50 -04:00
2025-08-26 09:28:54 -04:00
2023-12-06 17:36:37 -05:00