From 54ad8ae1084c5d301be755202a78720a2b977905 Mon Sep 17 00:00:00 2001
From: Guillaume Coré <gucore@redhat.com>
Date: Mon, 20 Jan 2020 22:54:40 +0100
Subject: [PATCH] poll_email.py: handle 'too many connections' error at login (#1019)

---
 tests/jenkins/downstream/poll_email.py |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/tests/jenkins/downstream/poll_email.py b/tests/jenkins/downstream/poll_email.py
index 050cbe2..1c8f8a2 100755
--- a/tests/jenkins/downstream/poll_email.py
+++ b/tests/jenkins/downstream/poll_email.py
@@ -50,9 +50,18 @@
 
 
 def connect():
-    M = imaplib.IMAP4_SSL(imap_server)
-    M.login(username, password)
-    return M
+    max_retries = 10
+    retries=0
+    while retries < max_retries:
+        try:
+            M = imaplib.IMAP4_SSL(imap_server)
+            M.login(username, password)
+            return M
+        except imaplib.IMAP4.error as err:
+            print("IMAP4 error: {0}".format(err))
+            print("[%d / %d] retrying to login.. wait %d sec" % (retries, max_retries, 2**retries))
+            sleep(2**retries)
+            retries += 1
 
 def disconnect(M):
     try:

--
Gitblit v1.9.3