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.
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) &&