#9032: XML-RPC client: Transport.request() retries on EPIPE error
The EPIPE error occurs when the server closes the socket and the client sends a
"big" XML-RPC request (I don't know exactly the size threshold).
request() just have to ignore the error because single_request() closes the
socket on error, and so the next call to single_request() will open a new
socket.
Remove also a comment in the HTTP client because it's now wrong: see r70643
and issue #5542.
diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py
index a72908c..d9c43c2 100644
--- a/Lib/xmlrpc/client.py
+++ b/Lib/xmlrpc/client.py
@@ -1135,7 +1135,7 @@
try:
return self.single_request(host, handler, request_body, verbose)
except socket.error as e:
- if i or e.errno not in (errno.ECONNRESET, errno.ECONNABORTED):
+ if i or e.errno not in (errno.ECONNRESET, errno.ECONNABORTED, errno.EPIPE):
raise
except http.client.BadStatusLine: #close after we sent request
if i: