TheYellowBeanieGuy
71a2ef4ce7
fix(store): harden snapshot vs concurrent writer mutation; fix SIGINT dict aliasing ( #389 )
...
get_latest_data_deepcopy_snapshot deep-copies layers outside the data lock; a writer mutating a nested object in place races it and raises "dictionary changed size during iteration" (500 on /api/health, /api/live-data). Two changes: (1) _merge_sigint_snapshot now shallow-copies each entry so latest_data["sigint"] no longer aliases the SIGINT bridge dicts or the meshtastic_map_nodes layer (the concrete offender); (2) the snapshot retries a few times as defense-in-depth for any other in-place mutator. Plus regression tests.
2026-06-15 17:35:27 -06:00
..
2026-06-15 17:35:27 -06:00
2026-06-02 13:34:11 -06:00
2026-06-08 21:04:08 -06:00
2026-06-14 17:00:13 -06:00
2026-06-08 22:44:16 -06:00
2026-06-08 21:04:08 -06:00
2026-06-07 23:39:13 -06:00
2026-06-08 21:04:08 -06:00
2026-05-21 15:11:28 -06:00
2026-06-08 21:04:08 -06:00
2026-03-04 22:44:08 -07:00
2026-06-11 00:55:38 -06:00
2026-05-01 22:56:50 -06:00
2026-05-01 22:56:50 -06:00
2026-05-23 06:38:05 -06:00
2026-05-01 22:56:50 -06:00
2026-06-08 21:04:08 -06:00
2026-05-21 20:39:23 -06:00
2026-06-08 21:04:08 -06:00
2026-06-14 11:26:57 -06:00
2026-05-22 23:40:18 -06:00
2026-05-01 22:56:50 -06:00
2026-06-08 21:04:08 -06:00
2026-06-08 21:04:08 -06:00
2026-05-21 15:11:28 -06:00
2026-03-26 05:58:04 -06:00
2026-05-01 22:56:50 -06:00
2026-05-21 15:11:28 -06:00
2026-06-03 14:31:31 -06:00
2026-06-03 14:33:01 -06:00
2026-06-06 20:16:18 -06:00
2026-06-03 15:01:32 -06:00
2026-03-26 05:58:04 -06:00
2026-05-06 01:15:54 -06:00
2026-06-03 15:01:32 -06:00
2026-06-02 13:34:11 -06:00
2026-05-06 01:15:54 -06:00
2026-05-01 22:56:50 -06:00
2026-06-12 02:15:56 -06:00
2026-06-14 17:00:13 -06:00
2026-06-12 02:15:56 -06:00
2026-05-01 22:56:50 -06:00
2026-05-02 02:13:36 -06:00
2026-06-04 09:01:21 -06:00
2026-05-01 22:56:50 -06:00
2026-06-14 11:26:57 -06:00
2026-05-01 22:56:50 -06:00
2026-05-20 20:01:25 -06:00
2026-05-21 15:11:28 -06:00
2026-06-02 15:20:44 -06:00
2026-05-01 22:56:50 -06:00
2026-03-26 05:58:04 -06:00
2026-05-20 20:31:56 -06:00
2026-06-04 09:01:21 -06:00
2026-05-21 15:11:28 -06:00
2026-05-12 11:49:46 -06:00
2026-06-03 18:41:28 -06:00
2026-06-08 21:04:08 -06:00
2026-03-20 17:27:13 +01:00
2026-06-09 21:32:08 -06:00
2026-03-26 05:58:04 -06:00
2026-05-21 15:11:28 -06:00
2026-06-15 15:37:29 -06:00
2026-05-12 11:49:46 -06:00
2026-05-21 15:11:28 -06:00
2026-05-21 01:31:20 -06:00
2026-03-26 05:58:04 -06:00
2026-03-26 05:58:04 -06:00
2026-06-15 15:37:29 -06:00