mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-20 04:30:46 +00: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;
|
||||
|
||||
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) {
|
||||
/* Normal case (not soft stop)*/
|
||||
if (((st->flags & SHTABLE_RESYNC_STATEMASK) == SHTABLE_RESYNC_FROMLOCAL) &&
|
||||
|
Loading…
Reference in New Issue
Block a user