From: W.C.A. Wijngaards Date: Thu, 1 Sep 2022 12:00:29 +0000 (+0200) Subject: - Slow down log frequency of write wait failures. X-Git-Tag: release-1.17.0rc1~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2450b4653af64fea8430897964a27ffca3d7e8da;p=thirdparty%2Funbound.git - Slow down log frequency of write wait failures. --- 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