From c824e9a713efac8d14e4d697f8c01a52c8f0d42c Mon Sep 17 00:00:00 2001
From: Antoine Pitrou <solipsis@pitrou.net>
Date: Tue, 5 Apr 2011 18:11:33 +0200
Subject: Try to fix sporadic test_multiprocessing failure

---
 Lib/test/test_multiprocessing.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 1136ab2..3e467d5 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -12,6 +12,7 @@ import io
 import sys
 import os
 import gc
+import errno
 import signal
 import array
 import socket
@@ -1277,7 +1278,16 @@ class _TestManagerRestart(BaseTestCase):
         manager.shutdown()
         manager = QueueManager(
             address=addr, authkey=authkey, serializer=SERIALIZER)
-        manager.start()
+        try:
+            manager.start()
+        except IOError as e:
+            if e.errno != errno.EADDRINUSE:
+                raise
+            # Retry after some time, in case the old socket was lingering
+            # (sporadic failure on buildbots)
+            time.sleep(1.0)
+            manager = QueueManager(
+                address=addr, authkey=authkey, serializer=SERIALIZER)
         manager.shutdown()
 
 #
-- 
cgit v0.12

