R-1270 (P2): a restore whose app does not reach running in time is never a success — every restore path returns ErrRestoreNotStarted, the household reads that the data is back but the app has not started yet, one operator alarm; the data stays, the undo copy is kept, a late start turns the record into a success and releases the copy. Red-proved. Commit only.
gates / gates (push) Successful in 1m32s
gates / gates (push) Successful in 1m32s
This commit is contained in:
@@ -1541,6 +1541,14 @@ func main() {
|
||||
})
|
||||
// R-893 option A (D20 = A): a failed off-site restore that was PUT BACK — the live volumes and definition poured
|
||||
// back and the app started. The same operator-tier event as the hold above (no new event type), its own leg.
|
||||
// R-1270: a restore whose data is back but whose app did not start in time — one operator line, its own leg.
|
||||
backupMgr.SetRestoreNotStartedNotify(func(stack, kind string, cause error) {
|
||||
d := notify.BackupRunFailuresDetails{RunKind: "restore", Failed: 1, Attempted: 1}
|
||||
d.Apps = append(d.Apps, notify.RunFailureDetail{App: stack, Leg: "restore-not-started", Reason: cause.Error()})
|
||||
msg := fmt.Sprintf("App %q: its %s put the data back, but the app did not start in time (R-1270). The household was told it has not "+
|
||||
"started yet; the pre-restore copy is kept. If it does not start by itself within 30 minutes, it needs a look. Error: %v", stack, kind, cause)
|
||||
notifier.NotifyBackupRunFailures(msg, d)
|
||||
})
|
||||
backupMgr.SetRestorePutBackNotify(func(stack string, replayErr error) {
|
||||
d := notify.BackupRunFailuresDetails{RunKind: "offsite-reconstitute", Failed: 1, Attempted: 1}
|
||||
d.Apps = append(d.Apps, notify.RunFailureDetail{App: stack, Leg: "restore-put-back", Reason: "restore failed; the pre-restore copy was put back"})
|
||||
|
||||
Reference in New Issue
Block a user