Review fixes for 0.340.0: C5 a catch-up releases the whole-guest backup when its backup legs end (red-proved); C3 the R-1187 c refusal text fits an unhealthy app; C6 two comments; C8 README backup.volumes wording; unreleased
gates / gates (push) Successful in 1m40s

This commit is contained in:
2026-10-22 21:25:48 +02:00
parent 912e59210d
commit 943c517550
7 changed files with 57 additions and 11 deletions
+7 -5
View File
@@ -1564,8 +1564,10 @@ func main() {
notifier.NotifyBackupCatchUp(missedAt.In(budapestLoc()).Format("15:04"))
},
// R-1189 (d): the off-site proof (05:30) and the integrity check (06:00) are daily jobs the scheduler
// never runs late; a box that is off at those hours comes back through this catch-up, so they run
// here — the proof picks one due snapshot, the integrity check runs only when it is due (max age).
// never runs late; a box that also MISSED a backup leg comes back through this catch-up, so they run
// here — the proof picks one due snapshot, the integrity check runs only when it is due (max age). A box
// that was on for the backup legs but off at 05:30–06:00 gets no catch-up: its integrity check catches
// up at the next 06:00 (due-ness); that day's proof is not made up (review 2026-10-22 night, C6).
After: func(ctx context.Context) {
runOffsiteProof(ctx, backupMgr, notifier, logger)
runOffsiteIntegrityCheck(ctx, backupMgr, notifier, logger, false)
@@ -1612,8 +1614,8 @@ func main() {
//
// DAILY JOB, WEEKLY BEHAVIOUR, and that is the point. It asks "is the last successful check
// older than the max age?" rather than "is it Sunday?", so a box that was switched off on its
// check day is checked the next day it is on AT 06:00 — or, if it is off at that hour, at its next
// catch-up (R-1189 d: the catch-up's After hook runs this check and the proof). R-341 is exactly the other shape: a dated check
// check day is checked the next day it is on AT 06:00 — or at its next catch-up, when it also missed a
// backup leg (R-1189 d: the catch-up's After hook runs this check and the proof). R-341 is exactly the other shape: a dated check
// quietly missed and never caught up. No `Weekly` primitive was added to the scheduler —
// due-ness is smaller, catches up, and is what R-86 already chose for restore-tests.
//
@@ -3137,7 +3139,7 @@ func (a *stackAdapter) GetDockerVolumes(name string) []string {
return backup.ResolveDockerVolumeNames(s.ComposePath)
}
// GetExcludedDockerVolumes (R-49, D21 = B): the named volumes the template excludes from every backup; an ignored
// GetExcludedDockerVolumes (R-49, D21 = B): the named volumes the template excludes from every app-data backup (not the .fab export); an ignored
// template entry is logged, never fatal (backup/volume_exclusion.go).
func (a *stackAdapter) GetExcludedDockerVolumes(name string) []string {
ex, ignored := a.mgr.ExcludedDockerVolumes(name)