fix(docker): a crash-looping service belongs in Needs attention (#5209)
failing_services filtered on `(service_trouble(s) or 9) <= 2`; a crash loop ranks 0, which is falsy, so the worst kind of trouble was left out. Test the rank against None. The page test's task error also gains the age_s the _swarm_failures include reads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -377,4 +377,6 @@ def failing_services(services: list[dict]) -> list[dict]:
|
|||||||
"""The services that belong in Needs attention: a crash loop, or short of
|
"""The services that belong in Needs attention: a crash loop, or short of
|
||||||
their desired replicas. A healthy service whose failed tasks Swarm has
|
their desired replicas. A healthy service whose failed tasks Swarm has
|
||||||
already replaced is history, shown on the service, not a problem now."""
|
already replaced is history, shown on the service, not a problem now."""
|
||||||
return [s for s in services_problems_first(services) if (service_trouble(s) or 9) <= 2]
|
# A crash loop ranks 0, so test the rank against None, not for truth.
|
||||||
|
return [s for s in services_problems_first(services)
|
||||||
|
if (t := service_trouble(s)) is not None and t <= 2]
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ async def test_a_failing_service_leads_and_the_failures_are_listed(app):
|
|||||||
"crash_looping": True, "failures_1h": 7, "failures_24h": 9, "tasks_known": True,
|
"crash_looping": True, "failures_1h": 7, "failures_24h": 9, "tasks_known": True,
|
||||||
"trouble_since": now - timedelta(minutes=20), "replicas": [], "previous_tasks": 7,
|
"trouble_since": now - timedelta(minutes=20), "replicas": [], "previous_tasks": 7,
|
||||||
"last_error": {"state": "failed", "error": "task: non-zero exit (1)", "exit_code": 1,
|
"last_error": {"state": "failed", "error": "task: non-zero exit (1)", "exit_code": 1,
|
||||||
"node": "nas", "at": None}}
|
"node": "nas", "at": None, "age_s": 120}}
|
||||||
failures = [{"kind": "service", "name": "codex_db", "host_id": None, "host": "nas", "count": 9,
|
failures = [{"kind": "service", "name": "codex_db", "host_id": None, "host": "nas", "count": 9,
|
||||||
"at": now - timedelta(minutes=2), "detail": "task: non-zero exit (1)"},
|
"at": now - timedelta(minutes=2), "detail": "task: non-zero exit (1)"},
|
||||||
{"kind": "container", "name": "backup", "host_id": "h1", "host": "nas", "count": 1,
|
{"kind": "container", "name": "backup", "host_id": "h1", "host": "nas", "count": 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user