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
