mirror of
https://github.com/KumoCorp/kumomta.git
synced 2026-10-03 16:00:31 +00:00
The gate could latch permanently when only one of the two error signals (foreground or background) ever moved, requiring an operator restart. It now auto-reopens for a retry after `error_unlatch_duration`, regardless of which signal latched it. Also serializes foreground error reporting with gate transitions so a concurrent fatal error cannot be undone by a reopen, and rejects a zero `error_unlatch_duration` when automatic reopening is enabled. The underlying cause is always logged. Adds a reusable LD_PRELOAD fault-injection crate and integration tests that reproduce a full disk and a slow disk to drive the latch-and-reopen cycle end to end. Fixes #597