From 2450b4653af64fea8430897964a27ffca3d7e8da Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 1 Sep 2022 14:00:29 +0200 Subject: [PATCH] - Slow down log frequency of write wait failures. --- doc/Changelog | 1 + util/netevent.c | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index b3f532698..6c627a68a 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 1 September 2022: Wouter - Fix to update config tests to fix checking if nonblocking sockets work on OpenBSD. + - Slow down log frequency of write wait failures. 31 August 2022: Wouter - Fix to avoid process wide fcntl calls mixed with nonblocking diff --git a/util/netevent.c b/util/netevent.c index 9c5fb3af3..de7078851 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -140,6 +140,8 @@ struct internal_base { int slow_accept_enabled; /** last log time for slow logging of file descriptor errors */ time_t last_slow_log; + /** last log time for slow logging of write wait failures */ + time_t last_writewait_log; }; /** @@ -416,8 +418,13 @@ comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet, # endif if(pret == 0) { /* timer expired */ - verbose(VERB_OPS, "send udp blocked " - "for long, dropping packet."); + struct comm_base* b = c->ev->base; + if(b->eb->last_writewait_log+SLOW_LOG_TIME <= + b->eb->secs) { + b->eb->last_writewait_log = b->eb->secs; + verbose(VERB_OPS, "send udp blocked " + "for long, dropping packet."); + } return 0; } else if(pret < 0 && #ifndef USE_WINSOCK @@ -652,8 +659,13 @@ comm_point_send_udp_msg_if(struct comm_point *c, sldns_buffer* packet, # endif if(pret == 0) { /* timer expired */ - verbose(VERB_OPS, "send udp blocked " - "for long, dropping packet."); + struct comm_base* b = c->ev->base; + if(b->eb->last_writewait_log+SLOW_LOG_TIME <= + b->eb->secs) { + b->eb->last_writewait_log = b->eb->secs; + verbose(VERB_OPS, "send udp blocked " + "for long, dropping packet."); + } return 0; } else if(pret < 0 && #ifndef USE_WINSOCK -- 2.47.3