python-dns timeout if any (but not all) nameservers fail to answer
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
py3dns |
Fix Released
|
High
|
Scott Kitterman | ||
py3dns (Debian) |
Fix Released
|
Unknown
|
|||
py3dns (Ubuntu) |
Fix Released
|
High
|
Scott Kitterman | ||
Lucid |
Invalid
|
Undecided
|
Unassigned | ||
Precise |
Won't Fix
|
Undecided
|
Unassigned | ||
Quantal |
Won't Fix
|
Undecided
|
Unassigned | ||
Raring |
Won't Fix
|
Undecided
|
Unassigned | ||
Saucy |
Fix Released
|
High
|
Scott Kitterman | ||
python-dns (Debian) |
Fix Released
|
Unknown
|
|||
python-dns (Ubuntu) |
Fix Released
|
Undecided
|
Scott Kitterman | ||
Lucid |
Won't Fix
|
Undecided
|
Unassigned | ||
Precise |
Fix Released
|
Undecided
|
Scott Kitterman | ||
Quantal |
Won't Fix
|
Undecided
|
Unassigned | ||
Raring |
Won't Fix
|
Undecided
|
Unassigned | ||
Saucy |
Fix Released
|
Undecided
|
Scott Kitterman |
Bug Description
Python-dns will always try queries against all nameservers listed in /etc/resolv.conf, even if it already got an answer. If any of them fail to answer, it will raise a Timeout error. Obviously this is roughly the opposite of what's supposed to happen.
[Impact]
This changes the DNS failure mode to failing if ALL nameservers fail to answer to failing if ANY nameserver fails to answer. Impacts reliability of the system. In the case of the bug reported in Debian, it was causing mail delivery failures.
[Test Case]
* Add an invalid nameserver to /etc/resolv.conf.
* Run /usr/share/
* It should end in a traceback and a Timeout error after about 30 seconds.
* Install the updated package
* Run the test again
* It will either return quickly or after some delay with an answer to the query (depending on if the failed nameserver is listed first or not). If it doesn't eventually traceback, the fix is verified.
[Regression Potential]
* The regression potential of the bug is negligible. I've tested this with many possible combinations of resolv.conf configurations and upstream has reviewed/accepted the patch.
Changed in python-dns (Debian): | |
status: | Unknown → Fix Released |
Changed in py3dns: | |
status: | New → Fix Committed |
assignee: | nobody → Scott Kitterman (kitterman) |
importance: | Undecided → High |
Changed in py3dns (Debian): | |
status: | Unknown → New |
Changed in py3dns (Ubuntu Lucid): | |
status: | New → Invalid |
Changed in py3dns (Ubuntu Precise): | |
status: | New → Won't Fix |
Changed in py3dns (Ubuntu Quantal): | |
status: | New → Won't Fix |
Changed in py3dns (Ubuntu Raring): | |
status: | New → Won't Fix |
Changed in py3dns (Ubuntu Saucy): | |
assignee: | nobody → Scott Kitterman (kitterman) |
importance: | Undecided → High |
status: | New → In Progress |
Changed in py3dns (Debian): | |
status: | New → Fix Released |
Note: I only intend to SRU this for precise.