Vinzenz Feenstra has uploaded a new change for review.

Change subject: virt: Ensure not to handle no longer tacked fds in epoll
......................................................................

virt: Ensure not to handle no longer tacked fds in epoll

In some cases it is possible that events from epoll are received before the
socket is closed. This patch ensures that we're still tracking the fd for
which we're receiving the event.

Change-Id: Idde0f89d2859107dd1bb697d1753709137335677
Bug-Url: https://bugzilla.redhat.com/1102072
Signed-off-by: Vinzenz Feenstra <[email protected]>
---
M vdsm/virt/vmchannels.py
1 file changed, 13 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/79/28179/1

diff --git a/vdsm/virt/vmchannels.py b/vdsm/virt/vmchannels.py
index d31cd47..67fb602 100644
--- a/vdsm/virt/vmchannels.py
+++ b/vdsm/virt/vmchannels.py
@@ -58,15 +58,19 @@
                 self.log.debug("Received %.08X. On fd removed by epoll.",
                                event)
         elif (event & select.EPOLLIN):
-            obj = self._channels[fileno]
-            obj['reconnects'] = 0
-            try:
-                if obj['read_cb'](obj['opaque']):
-                    obj['read_time'] = time.time()
-                else:
-                    reconnect = True
-            except:
-                self.log.exception("Exception on read callback.")
+            obj = self._channels.get(fileno, None)
+            if obj:
+                obj['reconnects'] = 0
+                try:
+                    if obj['read_cb'](obj['opaque']):
+                        obj['read_time'] = time.time()
+                    else:
+                        reconnect = True
+                except:
+                    self.log.exception("Exception on read callback.")
+            else:
+                self.log.debug("Received epoll event %.08X for no longer "
+                               "untracked fd = %d", event, fileno)
 
         if reconnect:
             self._prepare_reconnect(fileno)


-- 
To view, visit http://gerrit.ovirt.org/28179
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idde0f89d2859107dd1bb697d1753709137335677
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Vinzenz Feenstra <[email protected]>
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to