mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-09 08:37:04 +02:00
MEDIUM: peers: unregister peers that were never started
The peers initialization sequence is a bit complex, they're attached to stick-tables and initialized very early in the boot process. When we fork, if some must not start, it's too late to find them. Instead, simply add a guard in their respective tasks to stop them once they want to start.
This commit is contained in:
parent
aa729784e1
commit
46dc1ca761
@ -1204,6 +1204,15 @@ static struct task *process_peer_sync(struct task * task)
|
|||||||
|
|
||||||
task->expire = TICK_ETERNITY;
|
task->expire = TICK_ETERNITY;
|
||||||
|
|
||||||
|
if (!st->sessions->peer->peers->peers_fe) {
|
||||||
|
/* this one was never started, kill it */
|
||||||
|
signal_unregister_handler(st->sighandler);
|
||||||
|
st->table->sync_task = NULL;
|
||||||
|
task_delete(st->sync_task);
|
||||||
|
task_free(st->sync_task);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (!stopping) {
|
if (!stopping) {
|
||||||
/* Normal case (not soft stop)*/
|
/* Normal case (not soft stop)*/
|
||||||
if (((st->flags & SHTABLE_RESYNC_STATEMASK) == SHTABLE_RESYNC_FROMLOCAL) &&
|
if (((st->flags & SHTABLE_RESYNC_STATEMASK) == SHTABLE_RESYNC_FROMLOCAL) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user