Consider ProtocolError a transient error when reading.
Consider ProtocolError a transient error when reading.

This can happen with a stack trace that looks like this:

  (...)
  File "isolateserver.py", line 183, in zip_decompress
    for chunk in content_generator:
  File "isolateserver.py", line 121, in stream_read
    data = stream.read(chunk_size)
  File "utils/net.py", line 651, in read
    data = self._stream.read() if size is None else self._stream.read(size)
  File "third_party/requests/packages/urllib3/response.py", line 311, in read
    flush_decoder = True
  File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "third_party/requests/packages/urllib3/response.py", line 244, in _error_catcher
    raise ProtocolError('Connection broken: %r' % e, e)
ProtocolError: ("Connection broken: error(104, 'Connection reset by peer')", error(104, 'Connection reset by peer'))

This is likely related to commit a0a1d0214f410ad22ef2c600a521f859c89d99bf which
updated requests to 2.9.1.

R=vadimsh@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1611813002

luci/luci-py,luci/luci-py,luci/luci-py,luci/luci-py