[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#747687: wheezy-pu: package py3dns/3.0.2-1+deb7u2



Package: release.debian.org
Severity: normal
Tags: wheezy
User: release.debian.org@packages.debian.org
Usertags: pu

This package has two bugs that can cause significant issues.  Both result
in a failure of a DNS lookup; one with a timeout that should not occur and the
other with a traceback.

The fixes are trivial in complexity/risk so I would like to fix wheezy.

Debdiff attached.
diff -u py3dns-3.0.2/debian/changelog py3dns-3.0.2/debian/changelog
--- py3dns-3.0.2/debian/changelog
+++ py3dns-3.0.2/debian/changelog
@@ -1,3 +1,16 @@
+py3dns (3.0.2-1+deb7u2) wheezy; urgency=medium
+
+  * Backport change to fix timeouts associated with only one of several
+    available nameservers being unavailable (Closes: #718579):
+     - Only raise timeout error after trying all available servers
+     - Stop lookups once an answer is gotten
+  * Backport fix from 3.1/trunk to correctly deal with source port already in
+    use errors (LP: #1318264)
+     - Note that this bug was originally reported to the upstream project by a
+       Debian user
+
+ -- Scott Kitterman <scott@kitterman.com>  Sat, 10 May 2014 20:11:01 -0400
+
 py3dns (3.0.2-1+deb7u1) wheezy; urgency=low
 
   * Revert AAAA query result type change and return raw bytes instead of
only in patch2:
unchanged:
--- py3dns-3.0.2.orig/DNS/Base.py
+++ py3dns-3.0.2/DNS/Base.py
@@ -193,7 +193,7 @@
                 break
             except socket.error as msg: 
                 # Error 98, 'Address already in use'
-                if msg[0] != 98: raise
+                if msg.errno != 98: raise
 
     def conn(self):
         self.getSource()
@@ -282,6 +282,11 @@
                 # servers worked:
                 first_socket_error = first_socket_error or e
                 continue
+            except TimeoutError as t:
+                first_socket_error = first_socket_error or t
+                continue
+            if self.response:
+                break
         if not self.response and first_socket_error:
             raise first_socket_error
 
@@ -319,6 +324,11 @@
             except socket.error as e:
                 first_socket_error = first_socket_error or e
                 continue
+            except TimeoutError as t:
+                first_socket_error = first_socket_error or t
+                continue
+            if self.response:
+                break
         if not self.response and first_socket_error:
             raise first_socket_error
 

Reply to: