fix(maintenance): a late return, once back, stays back, and every reader agrees (#6175)
18032a4 re-checked a "not back in service" job every minute with no end,
so any later swarm wobble on the host (radarr's failed task during the
downloads move, say) flipped maintenance_failed back to 1: five false
firings and ten emails for Docker02 overnight on 10-19. And the overview's
finding never learned the rule at all, so it still said Docker02's
maintenance failed three days on.
The job now keeps came_back_at, set the first time its host is found back.
maintenance.still_failed(job) is the one answer: the figure, the overview,
the cadence page's run rows and the host panel all ask it. A failed update
or a timed-out job still flags its host until a job succeeds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -121,6 +121,9 @@ class HostMaintenanceJob(Base):
|
||||
docker_update = Column(Boolean, nullable=True)
|
||||
checked = Column(JSON, nullable=True)
|
||||
drained_at = Column(DateTime(timezone=True), nullable=True)
|
||||
# A job failed for not coming back into service in time: when its host
|
||||
# was first found back (#6175). From then on the job no longer flags it.
|
||||
came_back_at = Column(DateTime(timezone=True), nullable=True)
|
||||
|
||||
|
||||
class HostMaintenancePlan(Base):
|
||||
|
||||
Reference in New Issue
Block a user