1001786a08
Two problems prevented reliable recovery after a persistent overflow: 1. Restart storm: once read_error_streak >= 3, every subsequent read failure triggered a deactivate/activate cycle, potentially preventing the hardware from stabilising. Fix: after a successful restart, reset read_error_streak to 1 so the stream gets 2 more failures before the next restart attempt. 2. Stuck-deactivated stream: if activate() failed after overflow, the stream was left deactivated. Subsequent reads returned non-overflow errors which handle_read_error ignored (Ok(false)), so the stream was never reactivated. Fix: add a high-streak fallback (>= 10 consecutive errors of any kind) that also attempts a full deactivate/activate restart, covering the stuck-deactivated case. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Stan Grams <sjg@haxx.space>