Merge pull request #16624 from keszybz/timesync-retry-interval

Make timesyncd retry interval grow more slowly
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-07-30 20:47:41 +02:00 committed by GitHub
commit 3660da17b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 6 deletions

View File

@ -409,7 +409,7 @@ static int print_ntp_status_info(NTPStatusInfo *i) {
if (r < 0) if (r < 0)
return table_log_add_error(r); return table_log_add_error(r);
r = table_add_cell_stringf(table, NULL, "%s (%s)", i->server_address, i->server_name); r = table_add_cell_stringf(table, NULL, "%s (%s)", strna(i->server_address), strna(i->server_name));
if (r < 0) if (r < 0)
return table_log_add_error(r); return table_log_add_error(r);

View File

@ -137,11 +137,10 @@ static int manager_send_request(Manager *m) {
} }
/* re-arm timer with increasing timeout, in case the packets never arrive back */ /* re-arm timer with increasing timeout, in case the packets never arrive back */
if (m->retry_interval > 0) { if (m->retry_interval == 0)
if (m->retry_interval < m->poll_interval_max_usec) m->retry_interval = NTP_RETRY_INTERVAL_MIN_USEC;
m->retry_interval *= 2; else
} else m->retry_interval = MIN(m->retry_interval * 4/3, NTP_RETRY_INTERVAL_MAX_USEC);
m->retry_interval = m->poll_interval_min_usec;
r = manager_arm_timer(m, m->retry_interval); r = manager_arm_timer(m, m->retry_interval);
if (r < 0) if (r < 0)

View File

@ -24,6 +24,9 @@ typedef struct Manager Manager;
#define NTP_POLL_INTERVAL_MIN_USEC (32 * USEC_PER_SEC) #define NTP_POLL_INTERVAL_MIN_USEC (32 * USEC_PER_SEC)
#define NTP_POLL_INTERVAL_MAX_USEC (2048 * USEC_PER_SEC) #define NTP_POLL_INTERVAL_MAX_USEC (2048 * USEC_PER_SEC)
#define NTP_RETRY_INTERVAL_MIN_USEC (15 * USEC_PER_SEC)
#define NTP_RETRY_INTERVAL_MAX_USEC (6 * 60 * USEC_PER_SEC) /* 6 minutes */
struct Manager { struct Manager {
sd_bus *bus; sd_bus *bus;
sd_event *event; sd_event *event;