summaryrefslogtreecommitdiff
path: root/CHANGELOG
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2021-04-09 16:08:05 +0100
committerSimon Kelley <simon@thekelleys.org.uk>2021-04-09 16:08:05 +0100
commitad90eb075dfeeb1936e8bc0f323fcc23f89364d4 (patch)
tree07bbb1e48e59614471e31e845747eb4db21b2907 /CHANGELOG
parentd55e2d086d1ff30c427fa5e0ecc79746de8a81b7 (diff)
downloaddnsmasq-ad90eb075dfeeb1936e8bc0f323fcc23f89364d4.tar.gz
Fix bug in TCP process handling.
Fix bug which caused dnsmasq to lose track of processes forked to handle TCP DNS connections under heavy load. The code checked that at least one free process table slot was available before listening on TCP sockets, but didn't take into account that more than one TCP connection could arrive, so that check was not sufficient to ensure that there would be slots for all new processes. It compounded this error by silently failing to store the process when it did run out of slots. Even when this bug is triggered, all the right things happen, and answers are still returned. Only under very exceptional circumstances, does the bug manifest itself: see https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2021q2/014976.html Thanks to Tijs Van Buggenhout for finding the conditions under which the bug manifests itself, and then working out exactly what was going on.
Diffstat (limited to 'CHANGELOG')
-rw-r--r--CHANGELOG18
1 files changed, 18 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index ab4aa42..87adaf7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,24 @@ version 2.86
Thanks to Aichun Li for spotting this ommision, and the initial
patch.
+ Fix bug which caused dnsmasq to lose track of processes forked
+ to handle TCP DNS connections under heavy load. The code
+ checked that at least one free process table slot was
+ available before listening on TCP sockets, but didn't take
+ into account that more than one TCP connection could
+ arrive, so that check was not sufficient to ensure that
+ there would be slots for all new processes. It compounded
+ this error by silently failing to store the process when
+ it did run out of slots. Even when this bug is triggered,
+ all the right things happen, and answers are still returned.
+ Only under very exceptional circumstances, does the bug
+ manifest itself: see
+ https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2021q2/014976.html
+ Thanks to Tijs Van Buggenhout for finding the conditions under
+ which the bug manifests itself, and then working out
+ exactly what was going on.
+
+
version 2.85
Fix problem with DNS retries in 2.83/2.84.