Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e6d55b53c7 |
@@ -384,7 +384,13 @@ def services_converged(domain: str) -> bool:
|
|||||||
if proc.returncode != 0:
|
if proc.returncode != 0:
|
||||||
return False # a service vanished mid-check — not settled
|
return False # a service vanished mid-check — not settled
|
||||||
for state in proc.stdout.split("\n"):
|
for state in proc.stdout.split("\n"):
|
||||||
if state.strip() not in ("", "completed", "rollback_completed"):
|
# Only ACTIVE states block convergence. 'paused'/'rollback_paused' are terminal-without-
|
||||||
|
# intervention: swarm's default update-failure-action pauses the update on one task flicker
|
||||||
|
# and the flag then persists FOREVER (immich CI 241: app service 'paused' from a restart
|
||||||
|
# during restore, service back at 1/1 and healthy — the wait hung to its deadline). With
|
||||||
|
# N/N already required above, a paused update is settled for our purposes; the HTTP-health
|
||||||
|
# and tier assertions still gate whether the app actually works.
|
||||||
|
if state.strip() in ("updating", "rollback_started"):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user