BIND 10 trac2225, updated. ad05f3db1d7e3269b2255005703b23b655b4f700 [2225] corrected the wrong place to count receive errors of a unix socket

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Sep 3 10:14:08 UTC 2012


The branch, trac2225 has been updated
       via  ad05f3db1d7e3269b2255005703b23b655b4f700 (commit)
      from  bea1713e0a7fcc1a2ed7b4b643f8e40a2f6f118c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ad05f3db1d7e3269b2255005703b23b655b4f700
Author: Naoki Kambe <kambe at jprs.co.jp>
Date:   Mon Sep 3 18:58:47 2012 +0900

    [2225] corrected the wrong place to count receive errors of a unix socket
    
    moved the counter from handle_request() to _select_loop() and revised the
    related unit test

-----------------------------------------------------------------------

Summary of changes:
 src/bin/xfrout/tests/xfrout_test.py.in |   33 ++++++++++++++++++++------------
 src/bin/xfrout/xfrout.py.in            |    4 ++--
 2 files changed, 23 insertions(+), 14 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/bin/xfrout/tests/xfrout_test.py.in b/src/bin/xfrout/tests/xfrout_test.py.in
index 8f1dd30..0b0f9b0 100644
--- a/src/bin/xfrout/tests/xfrout_test.py.in
+++ b/src/bin/xfrout/tests/xfrout_test.py.in
@@ -1523,16 +1523,20 @@ class DummySocketserverException(DummyBaseSocketserver):
 class TestUnixSockServerForCounter(unittest.TestCase):
 
     def setUp(self):
-        (self.orig_remove_unused_sock_file,
-         self.orig_update_config_data,
-         self.orig_socket_socketpair,
-         self.orig_NoPollMixIn,
-         self.orig_ThreadingUnixStreamServer ) = \
+        ( self.orig_remove_unused_sock_file,
+          self.orig_update_config_data,
+          self.orig_socket_socketpair,
+          self.orig_NoPollMixIn,
+          self.orig_ThreadingUnixStreamServer,
+          self.orig_process_request,
+          self.orig_select ) = \
          ( UnixSockServer._remove_unused_sock_file,
            UnixSockServer.update_config_data,
            xfrout.socket.socketpair,
            xfrout.socketserver_mixin.NoPollMixIn,
-           xfrout.ThreadingUnixStreamServer )
+           xfrout.ThreadingUnixStreamServer,
+           UnixSockServer.process_request,
+           xfrout.select.select )
         UnixSockServer._remove_unused_sock_file = lambda x,y: None
         UnixSockServer.update_config_data = lambda x,y: None
         xfrout.socket.socketpair = \
@@ -1540,7 +1544,8 @@ class TestUnixSockServerForCounter(unittest.TestCase):
         xfrout.socketserver_mixin.NoPollMixIn = DummySocketserver
         xfrout.ThreadingUnixStreamServer = DummySocketserver
         xfrout.super = lambda : DummySocketserver()
-        self.unix = UnixSockServer(None, None, None, None, None)
+        xfrout.select.select = lambda x,y,z: ([None],[None],[None])
+        self.unix = UnixSockServer(None, None, threading.Event(), None, None)
 
     def tearDown(self):
         ( UnixSockServer._remove_unused_sock_file,
@@ -1548,13 +1553,17 @@ class TestUnixSockServerForCounter(unittest.TestCase):
           xfrout.socket.socketpair,
           xfrout.socketserver_mixin.NoPollMixIn,
           xfrout.ThreadingUnixStreamServer,
-          xfrout.super ) = \
+          xfrout.super,
+          UnixSockServer.process_request,
+          xfrout.select.select ) = \
           ( self.orig_remove_unused_sock_file,
             self.orig_update_config_data,
             self.orig_socket_socketpair,
             self.orig_NoPollMixIn,
             self.orig_ThreadingUnixStreamServer,
-            super )
+            super,
+            self.orig_process_request,
+            self.orig_select )
         counter.clear_counters()
 
     def test_open(self):
@@ -1603,10 +1612,10 @@ class TestUnixSockServerForCounter(unittest.TestCase):
         # recverr
         self.assertRaises(isc.cc.data.DataNotFoundError,
                           counter.get_unixsocket_recverr)
-        def raise_socketerror():
+        def raise_socketerror(x,y):
             raise socket.error
-        self.unix.get_request = raise_socketerror
-        self.unix.handle_request()
+        self.unix.process_request = raise_socketerror
+        self.unix._select_loop(None)
         self.assertEqual(counter.get_unixsocket_recverr(), 1)
 
 class TestInitialization(unittest.TestCase):
diff --git a/src/bin/xfrout/xfrout.py.in b/src/bin/xfrout/xfrout.py.in
index 93b0e68..20c6b57 100755
--- a/src/bin/xfrout/xfrout.py.in
+++ b/src/bin/xfrout/xfrout.py.in
@@ -732,8 +732,6 @@ class UnixSockServer(socketserver_mixin.NoPollMixIn,
         try:
             request, client_address = self.get_request()
         except socket.error:
-            # count unixsockets receive errors
-            counter.inc_unixsocket_recverr()
             logger.error(XFROUT_FETCH_REQUEST_ERROR)
             return
         self._select_loop(request)
@@ -769,6 +767,8 @@ class UnixSockServer(socketserver_mixin.NoPollMixIn,
                 if not self.process_request(request_sock):
                     break
             except Exception as pre:
+                # count unixsockets receive errors
+                counter.inc_unixsocket_recverr()
                 logger.error(XFROUT_PROCESS_REQUEST_ERROR, pre)
                 break
 



More information about the bind10-changes mailing list