See https://github.com/hashicorp/consul/issues/3977
While trying to improve furthermore #3948 (This pull request is still valid since we are not using Compression to compute the result anyway).
I saw a strange behaviour of dns library.
Basically, msg.Len() and len(msg.Pack()) disagree on Message len.
Thus, calculation of DNS response is false consul relies on msg.Len() instead of the result of Pack()
This is linked to miekg/dns#453 and a fix has been provided with miekg/dns#454
Would it be possible to upgrade miekg/dns to a more recent function ?
Consul might for instance upgrade to a post 1.0 release such as https://github.com/miekg/dns/releases/tag/v1.0.4
* Refactors the HTTP listen path to create servers in the same spot.
* Adds HTTP/2 support to Consul's HTTPS server.
* Vendors Go HTTP/2 library and associated deps.
* Added rate limiting for agent RPC calls.
* Initializes the rate limiter based on the config.
* Adds the rate limiter into the snapshot RPC path.
* Adds unit tests for the RPC rate limiter.
* Groups the RPC limit parameters under "limits" in the config.
* Adds some documentation about the RPC limiter.
* Sends a 429 response when the rate limiter kicks in.
* Adds docs for new telemetry.
* Makes snapshot telemetry look like RPC telemetry and cleans up comments.