You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi @TwiN, could you take another look at PR #1833 when you have a chance? It fixes lost recovery notifications in the alerting path: a temporary provider error currently clears the pending recovery, so later healthy checks never retry it. The patch retains pending state until delivery succeeds and retries through the existing evaluation cycle.
I have addressed the review follow-ups with clearer state-transition comments, SQLite restart coverage, and per-endpoint serialization for concurrent external pushes and heartbeat checks.
Validation went beyond unit tests: I ran the actual race-enabled Gatus executable against a local HTTP receiver and SQLite. In controlled runs, nine concurrent healthy pushes produced one recovery notification instead of nine; new failures and heartbeat expiry were preserved; and pending recovery survived a process restart and was retried. All 24 related packages passed with -race, and four concurrent API scenarios passed ten repetitions. Detailed follow-up and results.
I would appreciate a maintainer review and guidance on anything still needed before merging. Happy to make further changes. Thanks!
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Hi @TwiN, could you take another look at PR #1833 when you have a chance? It fixes lost recovery notifications in the alerting path: a temporary provider error currently clears the pending recovery, so later healthy checks never retry it. The patch retains pending state until delivery succeeds and retries through the existing evaluation cycle.
I have addressed the review follow-ups with clearer state-transition comments, SQLite restart coverage, and per-endpoint serialization for concurrent external pushes and heartbeat checks.
Validation went beyond unit tests: I ran the actual race-enabled Gatus executable against a local HTTP receiver and SQLite. In controlled runs, nine concurrent healthy pushes produced one recovery notification instead of nine; new failures and heartbeat expiry were preserved; and pending recovery survived a process restart and was retried. All 24 related packages passed with
-race, and four concurrent API scenarios passed ten repetitions. Detailed follow-up and results.I would appreciate a maintainer review and guidance on anything still needed before merging. Happy to make further changes. Thanks!
All reactions