R-1251 (P1): a pending put-back blocks every start — a cut restore's copy on an unbound drive waits (a restore hold), is poured back when the drive binds before any start; a failed put-back holds the app (H2); Stop during a restore still puts back (H7). Commit only, unreleased.
gates / gates (push) Successful in 1m18s
gates / gates (push) Successful in 1m18s
This commit is contained in:
@@ -653,6 +653,16 @@ func (m *Manager) clearUpdateHoldAfterRestore(stackName string) {
|
||||
return
|
||||
}
|
||||
h, ok := m.settings.GetRestoreHold(stackName)
|
||||
if ok && h.Reason == settings.HoldReasonPutBackPending {
|
||||
// R-1251: a restore that completed replaced the data a waiting put-back would have poured back — the household
|
||||
// chose this restore, so the old copy must never be poured over it when its drive returns. The copy stays.
|
||||
if _, err := m.settings.ClearRestoreHold(stackName); err != nil {
|
||||
m.logger.Printf("[ERROR] [backup] %s was restored, but its waiting put-back hold could not be cleared: %v", stackName, err)
|
||||
return
|
||||
}
|
||||
m.logger.Printf("[INFO] [backup] %s: restore completed — the waiting put-back (copy %s, set %s) is DROPPED; the copy stays on disk", stackName, h.SafetyDump, h.At)
|
||||
return
|
||||
}
|
||||
if !ok || h.Reason != settings.HoldReasonUpdateFailed {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user