diff --git a/src/check.c b/src/check.c index 4e681d5db..a440185da 100644 --- a/src/check.c +++ b/src/check.c @@ -1475,7 +1475,6 @@ int start_check_task(struct check *check, int mininter, int nbcheck, int srvpos) { struct task *t; - ulong boottime = tv_ms_remain(&start_date, &ready_date); /* task for the check. Process-based checks exclusively run on thread 1. */ if (check->type == PR_O2_EXT_CHK) @@ -1505,7 +1504,7 @@ int start_check_task(struct check *check, int mininter, mininter = global.max_spread_checks; /* check this every ms */ - t->expire = tick_add(now_ms, MS_TO_TICKS(boottime + mininter * srvpos / nbcheck)); + t->expire = tick_add(now_ms, MS_TO_TICKS(mininter * srvpos / nbcheck)); check->start = now_ns; task_queue(t); diff --git a/src/haproxy.c b/src/haproxy.c index 35aac95a0..0eb78d857 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -2251,13 +2251,16 @@ static void init(int argc, char **argv) * during config checks (e.g. to schedule certain tasks if needed) */ clock_update_date(0, 1); + clock_adjust_now_offset(); ready_date = date; + /* Note: global.nbthread will be initialized as part of this call */ err_code |= check_config_validity(); /* update the ready date to also account for the check time */ clock_update_date(0, 1); + clock_adjust_now_offset(); ready_date = date; for (px = proxies_list; px; px = px->next) { @@ -3521,6 +3524,7 @@ int main(int argc, char **argv) /* update the ready date a last time to also account for final setup time */ clock_update_date(0, 1); + clock_adjust_now_offset(); ready_date = date; if (global.mode & (MODE_DAEMON | MODE_MWORKER | MODE_MWORKER_WAIT)) {