Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
-
None
-
ghx-label-7
Description
There's a bug in THttpTransport that causes it to hang when sent a large, chunked request.
The issue is that in each call to THttpTransport::read(), it always starts by calling refill() which reads more data off the socket, but for chunked requests each call to read() only processes a single chunk.
So, if more than one chunk is read off the socket at a time, you can end up with more chunks still needing to be processed but no more data to read off the socket, and the next call to THttpTransport::read() will hang when it calls refill().