[elbe-devel] [PATCH v2] soapclient/get_files: initialize retry variable

Manuel Traut manut at linutronix.de
Wed Sep 12 12:23:42 CEST 2018


6b3fb9d01f170e708f357ea6c5f2b0e356ef0f3d removed the initiailization of
the retry variable, but not all usage. Because the commit
740690f56b0d79076face12ac365a18bde70af76 introducing the retry logic was
done for some reason, so we decided to keep the logic:
http://elbe-devel.2373613.n4.nabble.com/elbe-devel-PATCH-soapclient-download-file-fix-uninitialized-retry-tt1241.html#none
and add a verbose printout of the exception.

Also a comment is added, that the retry exception can be removed, if
those message didn't appear for a while.

Signed-off-by: Manuel Traut <manut at linutronix.de>
---
 elbepack/soapclient.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/elbepack/soapclient.py b/elbepack/soapclient.py
index fbb29a97..9c9a610c 100644
--- a/elbepack/soapclient.py
+++ b/elbepack/soapclient.py
@@ -82,11 +82,22 @@ class ElbeSoapClient(object):
         fp = file(dst_fname, "w")
         part = 0
 
+        # XXX the retry logic might get removed in the future, if the error
+        # doesn't occur in real world. If it occurs, we should think about
+        # the root cause instead of stupid retrying.
+        retry = 5
+
         while True:
             try:
                 ret = self.service.get_file(builddir, filename, part)
             except BadStatusLine as e:
                 retry = retry - 1
+
+                print("get_file part %d failed, retry %d times" % (part, retry),
+                      file=sys.stderr)
+                print(e.message, file=sys.stderr)
+                print(repr(e.line), file=sys.stderr)
+
                 if not retry:
                     fp.close()
                     print("file transfer failed", file=sys.stderr)
-- 
2.19.0.rc2




More information about the elbe-devel mailing list