Report information
The Basics
Id:
42446
Status:
resolved
Estimated:
8 hours (480 minutes)
Worked:
6 hours (360 minutes)
Users:
tmark: 6 hours (360 minutes)
Left:
12 hours (720 minutes)
Priority:
Low/Low
Queue:

BugTracker
Version Fixed:
4.4.0
Version Found:
(no value)
Versions Affected:
(no value)
Versions Planned:
4.4.0
Priority:
P2 Normal
Severity:
S2 Normal
CVSS Score:
(no value)
CVE ID:
(no value)
Component:
DHCP Server
Area:
feature

Dates
Created:Tue, 17 May 2016 09:51:08 -0400
Updated:Tue, 19 Dec 2017 06:30:09 -0500
Closed:Tue, 19 Dec 2017 06:30:08 -0500



This bug tracker is no longer active.

Please go to our Gitlab to submit issues (both feature requests and bug reports) for active projects maintained by Internet Systems Consortium (ISC).

Due to security and confidentiality requirements, full access is limited to the primary maintainers.

Subject: [PATCH] Compile in delayed-ack feature by default but disable it at runtime
Date: Tue, 17 May 2016 14:50:58 +0100
To: dhcp-suggest@isc.org
From: "Terry Burton" <tez@terryburton.co.uk>
Dear sir/madam, A couple of years ago I enquired about whether any users had had any poor experiences with using delayed-ack alongside failover [i]. The answers that were forthcoming where that delayed-ack seems to work fine which matches my own positive experiences. Perhaps ISC knows different? This lead to me raising a proposal for the delayed-ack feature to be compiled in by default [ii]. The following is a refresh of that proposal. Please could you review and if suitable pull the following: https://github.com/terryburton/isc-dhcp/commit/b712dc011e1ce67a3aa78db7f9a52733f9cf1a29 As a patch (also attached): https://github.com/terryburton/isc-dhcp/commit/b712dc011e1ce67a3aa78db7f9a52733f9cf1a29.diff Summary below... [i] https://lists.isc.org/pipermail/dhcp-users/2014-November/018386.html [ii] https://lists.isc.org/pipermail/dhcp-hackers/2014-December/002102.html Many thanks, Terry ---- ISC recommends the use of delayed-ack [1] yet this feature is still described as experimental and is omitted from the build by default. Myself and others [2] have had success with this feature in high-throughput failover configurations and would like to see --enable-delayed-ack default to yes. This patch enables delayed-ack in the default build. To mitigate any potentially harmful effects in untested configurations the default "delayed-ack" runtime configuration parameter has been amended to default to 0, rather than 28. The condition that decides between delayed- vs. immediate-ack has been amended so that it will immediately ack if the delayed-ack parameter has not been updated from the default of 0. This means that users are not accidentally exposed to the "experimental" code path, only if they add a delayed-ack parameter other than 0 to dhcpd.conf. Pros: * Delayed-ack support will be available without recompiling and will therefore find its way into distributions. * This will increase the amount of testing that this feature receives due to increased exposure - hopefully getting it out of experimental status sooner. * ISC DHCP then benefits from hugely increased performance without having to declare caveats. Cons: * Minor upgrade risk for users already compiling in delayed-ack support without specifying an explicit "delayed-ack" parameter in dhcpd.conf. Those who rely on the current default (28) will find it changed (0) thereby disabling the feature at runtime. Setting delayed-ack to 28 in dhcpd.conf will re-enable the previous behaviour. Perhaps a release note is sufficient to cover this? [1] https://deepthought.isc.org/article/AA-00373/0/Synchronous-Disk-Writes-and-DHCP-Performance-Limitations.html [2] https://lists.isc.org/pipermail/dhcp-users/2014-November/018387.html

Message body is not shown because sender requested not to inline it.

On Thu Nov 16 20:50:45 2017, tmark wrote: > > Ticket is ready for review. => the delayed-ask feature is incompatible with DHCPv4-over-DHCPv6 so we should make impossible to compile both features (i.e., required updates in docs and configure). Note the change must be done to configure.ac-base (vs configure.ac). The code itself is OK but not configure*, RELNOTES and dhcpd.conf.5.
Proposed some changes I added to the branch. Perhaps the RELNOTES needs to be updated about DHCPv4-over-DHCPv6 incompatibility (IMHO the manual update is enough).
Hello Terry: You'll be pleased to learn that in our next feature release, 4.4.0 due out Q1/2018, support for --delayed-ack is compiled in by default. Hopefully you'll find this more convenient. We like to recognize our contributors by citing them in the release notes. If you care to be thanked this way please respond with how you wish to be identified. Cheers, Thomas Markwalder ISC Software Engineering
To: dhcp-public@isc.org
Date: Wed, 13 Dec 2017 19:20:59 +0000
From: "Terry Burton" <tez@terryburton.co.uk>
Subject: Re: [ISC-Bugs #42446] [PATCH] Compile in delayed-ack feature by default but disable it at runtime
On 13 December 2017 at 19:02, Thomas Markwalder via RT <dhcp-public@isc.org> wrote:
Hello Terry:

You'll be pleased to learn that in our next feature release, 4.4.0 due out Q1/2018, support for --delayed-ack is compiled in by default. Hopefully you'll find this more convenient.

We like to recognize our contributors by citing them in the release notes.  If you care to be thanked this way please respond with how you wish to be identified.

Hi Thomas,

That's good news. Thank you for this and for undertaking the work to clean up the rough edges related to DHCPv6 incompatibility.

Feel free to refer to me as "Terry Burton" is the release notes.

One quick aside if I may: Is there any news on whether the patch for safe shutdown with quick startup (for config reloads, etc.) handled under RT #42437 will also make the cut?


All the best,

Terry


On Thu Dec 14 15:47:50 2017, tmark wrote: > IF you want to make the necessary runtime changes and can get it done > before the code freeze, then do it. => available on rt42446fd branch.
On Mon Dec 18 19:09:33 2017, tmark wrote: > The changes are fine except for the version number changing from > 4.4.0a1 to 4.4.0-dev. 4.4.0-dev preceded 4.4.0a1. => it is a side effect to have run util/regen-conf.sh on a branch based on master. So either master has to be fixed or I have to rebase rt42446fd on another branch. Or simply edit the diff and apply it directly to master... it seems the simplest, doesn't it?