Restart contact streams after storage recovery

Release cached path snapshots before resetting contacts while retaining the requesting transport and table revision for a complete stream restart. Keep explicit session cancellation unchanged and avoid copying uncached contact buffers.

Cover cached and uncached recovery, transport isolation, empty reloads, backpressure, and the former cancellation as a negative control.
This commit is contained in:
mikecarper committed 2026-10-16 09:11:19 -07:00
1 parent 587700a36a
commit e5706bafa1
5 files changed
+232 -10

No files matched your search

+5 -2
View File
@@ -40,8 +40,11 @@ sending along a different route. Contact I/O failures request bounded recovery
between callbacks. A raw cached-path read fault first rechecks the current
immutable paths without resetting accepted RAM changes or their save deadline.
Persistent faults or uncertain file publication reload a readable live image,
otherwise a readable backup,
and discard only unrecoverable contact data if neither works. nRF52 preserves
otherwise a readable backup, and discard only unrecoverable contact data if
neither works. Recovery releases a pending contact-list snapshot before resetting
the table but preserves its requesting route; the changed table revision starts
a fresh list that can finish normally. Explicit session cancellation still stops
the stream. nRF52 preserves
healthy pages when another page is damaged. No archival `.bad` files are kept.
If damaged contacts cannot be removed, the node remains usable with volatile
contacts; explicit saves still report failure, while reboot/shutdown remain