From fdc2afc102a6ac9f6ca3eaa0d1e6585f7332813c Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 2 Oct 2018 16:22:54 +0200 Subject: [PATCH 1/4] sd-radv: remove log_radv_warning_errno() According to our CODING_STYLE our library code should generally not log beyond LOG_DEBUG. Let's hence get rid of log_radv_warning_errno() and just use log_radv_errno() instead. --- src/libsystemd-network/radv-internal.h | 1 - src/libsystemd-network/sd-radv.c | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libsystemd-network/radv-internal.h b/src/libsystemd-network/radv-internal.h index b221c6f6c5..cd44352307 100644 --- a/src/libsystemd-network/radv-internal.h +++ b/src/libsystemd-network/radv-internal.h @@ -85,5 +85,4 @@ struct sd_radv_prefix { #define log_radv_full(level, error, fmt, ...) log_internal(level, error, __FILE__, __LINE__, __func__, "RADV: " fmt, ##__VA_ARGS__) #define log_radv_errno(error, fmt, ...) log_radv_full(LOG_DEBUG, error, fmt, ##__VA_ARGS__) -#define log_radv_warning_errno(error, fmt, ...) log_radv_full(LOG_WARNING, error, fmt, ##__VA_ARGS__) #define log_radv(fmt, ...) log_radv_errno(0, fmt, ##__VA_ARGS__) diff --git a/src/libsystemd-network/sd-radv.c b/src/libsystemd-network/sd-radv.c index b4de6bda90..4116b7e90b 100644 --- a/src/libsystemd-network/sd-radv.c +++ b/src/libsystemd-network/sd-radv.c @@ -250,7 +250,7 @@ static int radv_recv(sd_event_source *s, int fd, uint32_t revents, void *userdat break; default: - log_radv_warning_errno(r, "Error receiving from ICMPv6 socket: %m"); + log_radv_errno(r, "Error receiving from ICMPv6 socket: %m"); break; } @@ -261,7 +261,7 @@ static int radv_recv(sd_event_source *s, int fd, uint32_t revents, void *userdat r = radv_send(ra, &src, ra->lifetime); if (r < 0) - log_radv_warning_errno(r, "Unable to send solicited Router Advertisement to %s: %m", addr); + log_radv_errno(r, "Unable to send solicited Router Advertisement to %s: %m", addr); else log_radv("Sent solicited Router Advertisement to %s", addr); @@ -294,7 +294,7 @@ static int radv_timeout(sd_event_source *s, uint64_t usec, void *userdata) { r = radv_send(ra, NULL, ra->lifetime); if (r < 0) - log_radv_warning_errno(r, "Unable to send Router Advertisement: %m"); + log_radv_errno(r, "Unable to send Router Advertisement: %m"); /* RFC 4861, Section 6.2.4, sending initial Router Advertisements */ if (ra->ra_sent < SD_RADV_MAX_INITIAL_RTR_ADVERTISEMENTS) { @@ -348,7 +348,7 @@ _public_ int sd_radv_stop(sd_radv *ra) { with zero lifetime */ r = radv_send(ra, NULL, 0); if (r < 0) - log_radv_warning_errno(r, "Unable to send last Router Advertisement with router lifetime set to zero: %m"); + log_radv_errno(r, "Unable to send last Router Advertisement with router lifetime set to zero: %m"); radv_reset(ra); ra->fd = safe_close(ra->fd); From 437524f178db83fa9f3ab23a8ba6f81e1f6373da Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 2 Oct 2018 16:25:51 +0200 Subject: [PATCH 2/4] sd-ndisc: generate debug log messages on unexpected errors We really should make it possible to debug unexpected errors, hence log something at LOG_DEBUG. --- src/libsystemd-network/sd-ndisc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libsystemd-network/sd-ndisc.c b/src/libsystemd-network/sd-ndisc.c index acab75ee18..126a2929a9 100644 --- a/src/libsystemd-network/sd-ndisc.c +++ b/src/libsystemd-network/sd-ndisc.c @@ -221,7 +221,14 @@ static int ndisc_recv(sd_event_source *s, int fd, uint32_t revents, void *userda break; case -EPFNOSUPPORT: - log_ndisc("Received invalid source address from ICMPv6 socket."); + log_ndisc("Received invalid source address from ICMPv6 socket. Ignoring."); + break; + + case -EAGAIN: /* ignore spurious wakeups */ + break; + + default: + log_ndisc_errno(r, "Unexpected error while reading from ICMPv6, ignoring: %m"); break; } From 8eb41f4c08c7fd3476d41c0d8cac3c5e3df2f6a2 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 2 Oct 2018 16:26:50 +0200 Subject: [PATCH 3/4] sd-radv: EAGAIN is not really unexpected, distinguishit from other errors when logging --- src/libsystemd-network/sd-radv.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libsystemd-network/sd-radv.c b/src/libsystemd-network/sd-radv.c index 4116b7e90b..89c5a33497 100644 --- a/src/libsystemd-network/sd-radv.c +++ b/src/libsystemd-network/sd-radv.c @@ -249,8 +249,11 @@ static int radv_recv(sd_event_source *s, int fd, uint32_t revents, void *userdat log_radv("Received invalid source address from ICMPv6 socket. Ignoring."); break; + case -EAGAIN: /* ignore spurious wakeups */ + break; + default: - log_radv_errno(r, "Error receiving from ICMPv6 socket: %m"); + log_radv_errno(r, "Unexpected error receiving from ICMPv6 socket: %m"); break; } From 876449bb47855149c2561748033474c118e523a3 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 2 Oct 2018 16:28:06 +0200 Subject: [PATCH 4/4] update TODO --- TODO | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TODO b/TODO index f848b9741e..2371e76ac6 100644 --- a/TODO +++ b/TODO @@ -17,6 +17,9 @@ Janitorial Clean-ups: Features: +* consider splitting out all temporary file creation APIs (we have so many in + fileio.h and elsewhere!) into a new util file of its own. + * set memory.oom.group in cgroupsv2 for all leaf cgroups * whenever oom_kill memory.event event is triggered print a nice log message