Commit e383547
fix: node cache dropped service_type on load — a writer with no reader
Live-caught during LXMF propagation adoption (plan step 2b). to_dict()
has always written service_type, but _load_cache() restored 14 other
fields and silently dropped this one. Every gateway restart therefore
erased the RNS service type of every known node until it announced
again — up to 6h for a propagation node's 360-min interval.
Measured on moc immediately after the adoption restart: 2 of 9,115
cached entries carried service_type, and the oldest of those was stamped
90 seconds AFTER the restart. Everything heard before it lost the field.
honest_failure_modes #4 (reader/writer pairs wire together or fail
together), and it broke a real consumer: probe_lxmf_propagation_node_dark
matches the configured node by service_type, so after the restart that
ADOPTION ITSELF REQUIRES it reported our healthy, actively-serving node
as "NEVER been heard" — the exact wrong-hash fault it exists to catch.
The box had in fact heard it 7 times in 25h and had delivered a
store-and-forward message through it 10 minutes earlier.
Red-first: both tests fail with `assert None == 'LXMF_PROPAGATION'`
before the one-line restore. Second test pins the full save->load
round-trip so writer and reader fail together next time.
lint 0, parity in sync, full suite 9001 passed / 1 skipped.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>1 parent 0a85896 commit e383547
2 files changed
Lines changed: 65 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
708 | 708 | | |
709 | 709 | | |
710 | 710 | | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
711 | 720 | | |
712 | 721 | | |
713 | 722 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
588 | 588 | | |
589 | 589 | | |
590 | 590 | | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
591 | 647 | | |
592 | 648 | | |
593 | 649 | | |
| |||
0 commit comments