diff mbox

[ovs-dev,V6,09/17] python tests: Fixed OSError not iterable on Windows

Message ID 1467808691-17280-10-git-send-email-pboca@cloudbasesolutions.com
State Superseded
Delegated to: Guru Shetty
Headers show

Commit Message

Paul Boca July 6, 2016, 12:38 p.m. UTC
On Windows if this exception is triggered then it will raise an exception while in the
exception handler.

Signed-off-by: Paul-Daniel Boca <pboca@cloudbasesolutions.com>
---
V2: No changes
V3: No changes
V4: No changes
V5: No changes
V6: No changes
---
 python/ovs/poller.py | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Alin Serdean July 12, 2016, 7 p.m. UTC | #1
I am wondering why you get an OSError instead of a select error?
The order of the exception should be inverted (first the select one and after the OSerror one), or add a general exception at the end.

Thanks,
Alin.
> -----Mesaj original-----

> De la: dev [mailto:dev-bounces@openvswitch.org] În numele Paul Boca

> Trimis: Wednesday, July 6, 2016 3:38 PM

> Către: dev@openvswitch.org

> Subiect: [ovs-dev] [PATCH V6 09/17] python tests: Fixed OSError not iterable

> on Windows

> 

> On Windows if this exception is triggered then it will raise an exception while

> in the exception handler.

> 

> 

>  try:

>      import eventlet.patcher

> @@ -168,6 +169,10 @@ class Poller(object):

>              try:

>                  events = self.poll.poll(self.timeout)

>                  self.__log_wakeup(events)

> +            except OSError as e:

> +                error = e.errno

> +                if error != errno.EINTR:

> +                    vlog.err("poll: %s" % os.strerror(e.errno))

>              except select.error as e:

>                  # XXX rate-limit

>                  error, msg = e

> --

> 2.7.2.windows.1

> _______________________________________________

> dev mailing list

> dev@openvswitch.org

> http://openvswitch.org/mailman/listinfo/dev
diff mbox

Patch

diff --git a/python/ovs/poller.py b/python/ovs/poller.py
index 20be801..a0fb2a7 100644
--- a/python/ovs/poller.py
+++ b/python/ovs/poller.py
@@ -17,6 +17,7 @@  import ovs.timeval
 import ovs.vlog
 import select
 import socket
+import os
 
 try:
     import eventlet.patcher
@@ -168,6 +169,10 @@  class Poller(object):
             try:
                 events = self.poll.poll(self.timeout)
                 self.__log_wakeup(events)
+            except OSError as e:
+                error = e.errno
+                if error != errno.EINTR:
+                    vlog.err("poll: %s" % os.strerror(e.errno))
             except select.error as e:
                 # XXX rate-limit
                 error, msg = e