From: Victor Stinner Date: Mon, 10 Feb 2014 10:47:50 +0000 (+0100) Subject: Issue #20505: Add debug info to analyze sporaric failures of X-Git-Tag: v3.4.0rc1~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1c143b19c88021e323d4a88315efc8879b1c631d;p=python Issue #20505: Add debug info to analyze sporaric failures of test_timeout_rounding() on Windows XP buildbots. --- diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 558406c272..4207a7e9f1 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -633,7 +633,13 @@ class BaseEventLoop(events.AbstractEventLoop): else: logger.log(level, 'poll took %.3f seconds', t1-t0) else: + t0 = self.time() event_list = self._selector.select(timeout) + dt = self.time() - t0 + if not event_list and timeout and dt < timeout: + print("asyncio: selector.select(%.3f ms) took %.3f ms" + % (timeout*1e3, dt*1e3), + file=sys.__stderr__, flush=True) self._process_events(event_list) # Handle 'later' callbacks that are ready. diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index 4fb4b25481..e6a1c97955 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -1182,7 +1182,10 @@ class EventLoopTestsMixin: # may sleep at little bit less than timeout depending on the resolution # of the clock used by the kernel. Tolerate 2 useless calls on these # platforms. - self.assertLessEqual(self.loop._run_once_counter, 8) + self.assertLessEqual(self.loop._run_once_counter, 8, + {'time_info': time.get_clock_info('time'), + 'monotonic_info': time.get_clock_info('monotonic'), + 'selector': self.loop._selector.__class__.__name__}) class SubprocessTestsMixin: