From 25da7a1b1a17baff3438f2e0af48cd89794bb405 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <timm.fitschen@ds.mpg.de>
Date: Thu, 20 Dec 2018 09:26:46 +0100
Subject: [PATCH] BUG: catch broken pipe and retry

---
 src/caosdb/connection/connection.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/caosdb/connection/connection.py b/src/caosdb/connection/connection.py
index 0d4e3107..38476893 100644
--- a/src/caosdb/connection/connection.py
+++ b/src/caosdb/connection/connection.py
@@ -30,7 +30,7 @@ try:
 except ImportError:
     from urllib import quote
     from urlparse import urlparse
-
+from errno import EPIPE as BrokenPipe
 from socket import error as SocketError
 import ssl
 import logging
@@ -458,6 +458,13 @@ class _Connection(object):  # pylint: disable=useless-object-inheritance
             return self._retry_http_request(method=method, path=path,
                                             headers=headers, body=body,
                                             **kwargs)
+        except SocketError as e:
+            if e.errno != BrokenPipe:
+                raise
+            return self._retry_http_request(method=method, path=path,
+                                            headers=headers, body=body,
+                                            reconnect=False,
+                                            **kwargs)
         except LoginFailedException:
             if kwargs.get("reconnect", True) is True:
                 self._login()
-- 
GitLab