Message ID | 20190820021241.30843-1-marmarek@invisiblethingslab.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | python: do not report handled EAGAIN error | expand |
On Tue, Aug 20, 2019 at 04:12:41AM +0200, Marek Marczykowski-Górecki wrote: > match_watch_by_token() when returns an error, sets also exception within > python. This is generally the right thing to do, but when > xspy_read_watch() handle EAGAIN error internally, the exception needs to > be cleared. Otherwise it will fail like this: > > xen.lowlevel.xs.Error: (11, 'Resource temporarily unavailable') > > The above exception was the direct cause of the following exception: > > Traceback (most recent call last): > (...) > result = self.handle.read_watch() > SystemError: <method 'read_watch' of 'xen.lowlevel.xs.xs' objects> returned a result with an error set > > Fixes f6e1023412 "python: Extract registered watch search logic from xspy_read_watch()" > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> Acked-by: Wei Liu <wl@xen.org>
diff --git a/tools/python/xen/lowlevel/xs/xs.c b/tools/python/xen/lowlevel/xs/xs.c index ea50f86bc3..621039d7a7 100644 --- a/tools/python/xen/lowlevel/xs/xs.c +++ b/tools/python/xen/lowlevel/xs/xs.c @@ -531,6 +531,7 @@ again: free(xsval); if (!val && errno == EAGAIN) { + PyErr_Clear(); goto again; }
match_watch_by_token() when returns an error, sets also exception within python. This is generally the right thing to do, but when xspy_read_watch() handle EAGAIN error internally, the exception needs to be cleared. Otherwise it will fail like this: xen.lowlevel.xs.Error: (11, 'Resource temporarily unavailable') The above exception was the direct cause of the following exception: Traceback (most recent call last): (...) result = self.handle.read_watch() SystemError: <method 'read_watch' of 'xen.lowlevel.xs.xs' objects> returned a result with an error set Fixes f6e1023412 "python: Extract registered watch search logic from xspy_read_watch()" Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> --- tools/python/xen/lowlevel/xs/xs.c | 1 + 1 file changed, 1 insertion(+)