From: Marek Marczykowski-Górecki Date: Tue, 20 Aug 2019 02:12:41 +0000 (+0200) Subject: python: do not report handled EAGAIN error X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~1713 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ee463ef4e067773c94b0e3266e0838ce93ac5ef6;p=xen.git python: do not report handled EAGAIN error 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: 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 Acked-by: Wei Liu --- 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; }