From: Vladimír Čunát Date: Fri, 12 Feb 2021 09:06:25 +0000 (+0100) Subject: daemon/udp_queue: drop the error logging X-Git-Tag: v5.3.0~4^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ec48167e479231e6b5e8eb26d73bb40f4e18533;p=thirdparty%2Fknot-resolver.git daemon/udp_queue: drop the error logging We should do this for all transports and probably just in verbose mode. We were printing lots of these on Turris OS (for one user at least): https://forum.turris.cz/t/5-1-8-kresd-throwing-many-errors-in-var-log-messages/14775 EACCESS in particular apparently may happen (on Linux) when the network is "unavailable", EPERM because of firewall/netfilter: https://stackoverflow.com/a/23869102 --- diff --git a/NEWS b/NEWS index bb584f9a0..d8431c031 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ Improvements - daf module: add daf.clear() (!1114) - dnstap module: more features and don't log internal requests (!1103) - randomize record order by default, i.e. reorder_RR(true) (!1123) +- avoid excessive logging of UDP replies with sendmmsg (!1138) Bugfixes -------- diff --git a/daemon/udp_queue.c b/daemon/udp_queue.c index 9cf39401a..4d2f27ae9 100644 --- a/daemon/udp_queue.c +++ b/daemon/udp_queue.c @@ -76,19 +76,6 @@ static void udp_queue_send(int fd) int sent_len = sendmmsg(fd, q->msgvec, q->len, 0); /* ATM we don't really do anything about failures. */ int err = sent_len < 0 ? errno : EAGAIN /* unknown error, really */; - if (unlikely(sent_len != q->len)) { - if (err != EWOULDBLOCK) { - kr_log_error("ERROR: udp sendmmsg() sent %d / %d; %s\n", - sent_len, q->len, strerror(err)); - } else { - const uint64_t stamp_now = kr_now(); - static uint64_t stamp_last = 0; - if (stamp_now > stamp_last + 60*1000) { - kr_log_info("WARNING: dropped UDP reply packet(s) due to network overload (reported at most once per minute)\n"); - stamp_last = stamp_now; - } - } - } for (int i = 0; i < q->len; ++i) { qr_task_on_send(q->items[i].task, NULL, i < sent_len ? 0 : err); worker_task_unref(q->items[i].task);