fix(engine): the safe branch outlives the api (gh-#791, gh-#771) - #869
Merged
Merged
Conversation
- Bound the safe-track fetch: curl --connect-timeout 2 --max-time 5 (gh-#771). - Remember up to 16 distinct safe answers in engine memory; on any fetch failure replay them round-robin instead of falling to silence (gh-#791). - A 204 (safe scope empty) forgets everything, so an emptied scope is still silence. - Background warmer (30 s until full or 20 warms, then 300 s). - One log line per outcome: timed out / unreachable / HTTP error / failed / empty. - Specs run the resolver block in real Liquidsoap and the engine image against a stub + stalled api; engine byte pins re-pinned. - README outage wording follows.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔁 What
The engine's safe resolver no longer falls silent when the api stalls or goes away.
curl --connect-timeout 2 --max-time 5(engine: the safe-track curl has no timeout — a stalled API wedges safe rotation #771).✅ Proof
Gh791_SafeResolverSurvivesApiOutage: 12/12. It runs the shipped resolver block in real Liquidsoap 2.4.5, and runs the real curl line in the engine image against a stub api, a stalled api (cut off within 5 s, then replay) and a missing host.unreachable (curl 6); replaying remembered safe track, zero final-guard lines, and the engine returned to the main feed after restart.🔜 Not here
The gate's F178.8(a) move back to zero silence (
GW_SAFE_GAP_SECONDS=0in the gate compose, retireGATE_OUTAGE_SILENCE_MAX_SECS) is a follow-up.Closes #791
Closes #771