Traefik v3.7.17 (GHSA-xv5x-242w-7hf7); R-1347 a restore forgets the update-held flag; R-1348 a failed put-back at start-up mails; R-1339, R-1351, R-1323 truthful start-up lines and one lock over FileBrowser's compose. Commit only.
gates / gates (push) Successful in 29s
gates / gates (push) Successful in 29s
This commit is contained in:
1 parent
a90b62323f
commit
c4b6844d34
19 files changed
+569
-9
No files matched your search
@@ -126,9 +126,42 @@ func (g *AppStopGuard) holdPutBackFailed(stack, dir string, cause error) bool {
|
||||
return false
|
||||
}
|
||||
g.logger.Printf("[ERROR] [appstop] %s: the interrupted restore could NOT be put back (%v) — the app is HELD for support, the copy stays at %s (R-1251 H2)", stack, cause, dir)
|
||||
g.notifyHeld(stack)
|
||||
return true
|
||||
}
|
||||
|
||||
// SetHeldNotify wires the operator mail for a failed put-back (R-1348; main.go: the R-1340 sentence from the hold record)
|
||||
// and hands over what Recover held before the notifier existed. Each held app is mailed once. Pinned by TestR1348_* and
|
||||
// TestR1348_HeldNotifyIsWiredAtStartup.
|
||||
func (g *AppStopGuard) SetHeldNotify(fn func(stack string)) {
|
||||
if g == nil {
|
||||
return
|
||||
}
|
||||
g.liveMu.Lock()
|
||||
g.heldNotify = fn
|
||||
waiting := g.heldPending
|
||||
g.heldPending = nil
|
||||
g.liveMu.Unlock()
|
||||
if fn == nil {
|
||||
return
|
||||
}
|
||||
for _, stack := range waiting {
|
||||
fn(stack)
|
||||
}
|
||||
}
|
||||
|
||||
func (g *AppStopGuard) notifyHeld(stack string) {
|
||||
g.liveMu.Lock()
|
||||
fn := g.heldNotify
|
||||
if fn == nil {
|
||||
g.heldPending = append(g.heldPending, stack)
|
||||
}
|
||||
g.liveMu.Unlock()
|
||||
if fn != nil {
|
||||
fn(stack)
|
||||
}
|
||||
}
|
||||
|
||||
// clearPutBackPending lifts this app's waiting-put-back hold, and only that kind.
|
||||
func (g *AppStopGuard) clearPutBackPending(stack string) {
|
||||
if g.holds == nil {
|
||||
|
||||
Reference in new issue
Block a user