After a crash, don't restart workers with BGW_NEVER_RESTART.
Amit Khandekar
This commit is contained in:
parent
abd94bcac4
commit
b3a5e76e12
@ -419,9 +419,9 @@ BackgroundWorkerStopNotifications(pid_t pid)
|
||||
/*
|
||||
* Reset background worker crash state.
|
||||
*
|
||||
* We assume that, after a crash-and-restart cycle, background workers should
|
||||
* be restarted immediately, instead of waiting for bgw_restart_time to
|
||||
* elapse.
|
||||
* We assume that, after a crash-and-restart cycle, background workers without
|
||||
* the never-restart flag should be restarted immediately, instead of waiting
|
||||
* for bgw_restart_time to elapse.
|
||||
*/
|
||||
void
|
||||
ResetBackgroundWorkerCrashTimes(void)
|
||||
@ -433,7 +433,14 @@ ResetBackgroundWorkerCrashTimes(void)
|
||||
RegisteredBgWorker *rw;
|
||||
|
||||
rw = slist_container(RegisteredBgWorker, rw_lnode, iter.cur);
|
||||
rw->rw_crashed_at = 0;
|
||||
|
||||
/*
|
||||
* For workers that should not be restarted, we don't want to lose
|
||||
* the information that they have crashed; otherwise, they would be
|
||||
* restarted, which is wrong.
|
||||
*/
|
||||
if (rw->rw_worker.bgw_restart_time != BGW_NEVER_RESTART)
|
||||
rw->rw_crashed_at = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user