v0.243.0: FileBrowser generated admin password (R-513); per-tier whole-guest backup truth (R-517); skip absent-storage tiers (R-518); OOM-killed worker visible (R-514)
gates / gates (push) Successful in 14s
gates / gates (push) Successful in 14s
MinAgent: 0.131.0 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -788,6 +788,15 @@ func main() {
|
||||
dead, states := scanDeployedAppRunStates(stackMgr, quiesceLoop, appStopGuard)
|
||||
alertMgr.SetDeadAppAlerts(dead)
|
||||
notifier.NotifyAppStartFailures(states)
|
||||
// R-514: a worker OOM-killed inside a running container leaves the app „Fut". Surface it.
|
||||
if ooms, oerr := stackMgr.ScanOOMKilled(); oerr != nil {
|
||||
logger.Printf("[WARN] [deadapp] OOM scan failed: %v", oerr)
|
||||
} else {
|
||||
for _, o := range ooms {
|
||||
logger.Printf("[WARN] [deadapp] %s: container %s was OOM-killed (started %s)", o.Stack, o.Container, o.StartedAt)
|
||||
notifier.NotifyAppOOM(o.Stack, o.Container, o.StartedAt)
|
||||
}
|
||||
}
|
||||
deadAppScans++
|
||||
noteDeadAppScan(logger, deadAppScans, len(states), len(dead))
|
||||
noteUnknownIntentSuppressions(logger, states)
|
||||
@@ -2972,7 +2981,7 @@ func (b quiesceBackend) Tiers(ctx context.Context) ([]quiesce.BackupTier, error)
|
||||
}
|
||||
out := make([]quiesce.BackupTier, 0, len(r.Tiers))
|
||||
for _, t := range r.Tiers {
|
||||
out = append(out, quiesce.BackupTier{Target: t.Target, Primary: t.Primary})
|
||||
out = append(out, quiesce.BackupTier{Target: t.Target, Primary: t.Primary, StorageAbsent: t.Storage == "absent"})
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
@@ -3032,6 +3041,11 @@ func (q quiesceTierNotifier) BackupRecovered(tier, message string) {
|
||||
q.n.NotifyWholeGuestBackupRecovered(tier, message)
|
||||
}
|
||||
|
||||
// BackupTierSkipped satisfies quiesce.TierSkipNotifier (R-518).
|
||||
func (q quiesceTierNotifier) BackupTierSkipped(tier, message string) {
|
||||
q.n.NotifyBackupTierSkipped(tier, message)
|
||||
}
|
||||
|
||||
// startQuiesceLoop wires + starts the slice-8B quiesce loop when the local API is configured and
|
||||
// quiesce is enabled. It Recovers (restarts stacks left stopped by a mid-quiesce crash) before
|
||||
// starting the loop goroutine. Non-fatal: any misconfig disables the loop with a log line.
|
||||
|
||||
Reference in New Issue
Block a user