From 1c143b19c88021e323d4a88315efc8879b1c631d Mon Sep 17 00:00:00 2001
From: Victor Stinner <victor.stinner@gmail.com>
Date: Mon, 10 Feb 2014 11:47:50 +0100
Subject: [PATCH] Issue #20505: Add debug info to analyze sporaric failures of
 test_timeout_rounding() on Windows XP buildbots.

---
 Lib/asyncio/base_events.py           | 6 ++++++
 Lib/test/test_asyncio/test_events.py | 5 ++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

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:
-- 
2.40.0