net: DNS timeout not implemented per spec #16885
Per man resolv.conf -
This indicates that after timeout seconds, the querier will move to the next server.
However, in Go 1.7, this seems to be a hard max timeout. The config structure is even noted as such -
This in itself doesn't make much sense, since server iteration happens inside the retry for loop (which is correct).
Then in dnsclient_unix.go starting at 183, a hard deadline seems to add cfg.timeout to current time before even starting retries or iterations. Ideally instead this should be calculated and reset in the server for loop.
This is problematic because many set a low timeout in resolv.conf to keep a bad server from hanging for so long. Doing so now will cause queries to fail rather than move to next server as is supposed to happen.
Please answer these questions before submitting your issue. Thanks!
The text was updated successfully, but these errors were encountered: