Figure out why Web servers fail sometimes with `IncompleteRead` error
This only happens in one of the Web servers (but not others) and it happens both downloading and uploading data.
The trace using relay_bw:
Traceback (most recent call last):
File "/path/.virtualenvs/relaybw/lib/python3.11/site-packages/urllib3/response.py", line 748, in _error_catcher
yield
File "/path/.virtualenvs/relaybw/lib/python3.11/site-packages/urllib3/response.py", line 894, in _raw_read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
urllib3.exceptions.IncompleteRead: IncompleteRead(324519920 bytes read, 749221904 more expected)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/path/.virtualenvs/relaybw/lib/python3.11/site-packages/requests/models.py", line 816, in generate
yield from self.raw.stream(chunk_size, decode_content=True)
File "/path/.virtualenvs/relaybw/lib/python3.11/site-packages/urllib3/response.py", line 1060, in stream
data = self.read(amt=amt, decode_content=decode_content)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/path/.virtualenvs/relaybw/lib/python3.11/site-packages/urllib3/response.py", line 977, in read
data = self._raw_read(amt)
^^^^^^^^^^^^^^^^^^^
File "/path/.virtualenvs/relaybw/lib/python3.11/site-packages/urllib3/response.py", line 872, in _raw_read
with self._error_catcher():
File "/usr/lib/python3.11/contextlib.py", line 155, in __exit__
self.gen.throw(typ, value, traceback)
File "/path/.virtualenvs/relaybw/lib/python3.11/site-packages/urllib3/response.py", line 772, in _error_catcher
raise ProtocolError(arg, e) from e
urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead(324519920 bytes read, 749221904 more expected)', IncompleteRead(324519920 bytes read, 749221904 more expected))
It might be some server configuration or something like #40213 (comment 3080399)
Edited by juga