Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/util/_eventloop/
Date: Mon, 25 Feb 2013 23:53:11
Message-Id: 1361836364.071440cc30cc5a625317d5bd47e86c2bfdd8a940.zmedico@gentoo
1 commit: 071440cc30cc5a625317d5bd47e86c2bfdd8a940
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Mon Feb 25 23:52:44 2013 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Mon Feb 25 23:52:44 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=071440cc
7
8 EventLoop: qemu-user epoll quirk, bug #451326
9
10 The epoll implementation in qemu-user-1.2.2 appears to generate events
11 for file descriptors that are no longer registered. Handle it, since it
12 appears to be harmless (see bug #451326).
13
14 ---
15 pym/portage/util/_eventloop/EventLoop.py | 8 +++++++-
16 1 files changed, 7 insertions(+), 1 deletions(-)
17
18 diff --git a/pym/portage/util/_eventloop/EventLoop.py b/pym/portage/util/_eventloop/EventLoop.py
19 index ad64406..3742055 100644
20 --- a/pym/portage/util/_eventloop/EventLoop.py
21 +++ b/pym/portage/util/_eventloop/EventLoop.py
22 @@ -256,7 +256,13 @@ class EventLoop(object):
23 while event_queue:
24 events_handled += 1
25 f, event = event_queue.pop()
26 - x = event_handlers[f]
27 + try:
28 + x = event_handlers[f]
29 + except KeyError:
30 + # This is known to be triggered by the epoll
31 + # implementation in qemu-user-1.2.2, and appears
32 + # to be harmless (see bug #451326).
33 + continue
34 if not x.callback(f, event, *x.args):
35 self.source_remove(x.source_id)