forked from LBRYCommunity/lbry-sdk
Merge pull request #2487 from lbryio/fix-connection-reset
handle error if range request transport is reset
This commit is contained in:
commit
44b27bbfc8
1 changed files with 4 additions and 1 deletions
|
@ -289,8 +289,8 @@ class ManagedStream:
|
||||||
await response.prepare(request)
|
await response.prepare(request)
|
||||||
self.streaming_responses.append((request, response))
|
self.streaming_responses.append((request, response))
|
||||||
self.streaming.set()
|
self.streaming.set()
|
||||||
|
wrote = 0
|
||||||
try:
|
try:
|
||||||
wrote = 0
|
|
||||||
async for blob_info, decrypted in self._aiter_read_stream(skip_blobs, connection_id=self.STREAMING_ID):
|
async for blob_info, decrypted in self._aiter_read_stream(skip_blobs, connection_id=self.STREAMING_ID):
|
||||||
if not wrote:
|
if not wrote:
|
||||||
decrypted = decrypted[first_blob_start_offset:]
|
decrypted = decrypted[first_blob_start_offset:]
|
||||||
|
@ -308,6 +308,9 @@ class ManagedStream:
|
||||||
if response._eof_sent:
|
if response._eof_sent:
|
||||||
break
|
break
|
||||||
return response
|
return response
|
||||||
|
except ConnectionResetError:
|
||||||
|
log.warning("connection was reset after sending browser %i blob bytes", wrote)
|
||||||
|
raise asyncio.CancelledError("range request transport was reset")
|
||||||
finally:
|
finally:
|
||||||
response.force_close()
|
response.force_close()
|
||||||
if (request, response) in self.streaming_responses:
|
if (request, response) in self.streaming_responses:
|
||||||
|
|
Loading…
Reference in a new issue