Skip to content

Commit ecc8cbc

Browse files
committed
wait top stop background tasks before stop writer stream
1 parent 72dfff9 commit ecc8cbc

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

ydb/_topic_writer/topic_writer_asyncio.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,7 @@ async def _connection_loop(self):
366366

367367
tasks = [send_loop, receive_loop]
368368
done, _ = await asyncio.wait([send_loop, receive_loop], return_when=asyncio.FIRST_COMPLETED)
369-
await stream_writer.close()
370-
done.pop().result()
369+
done.pop().result() # need for raise exception - reason of stop task
371370
except issues.Error as err:
372371
err_info = check_retriable_error(err, retry_settings, attempt)
373372
if not err_info.is_retriable:
@@ -380,12 +379,12 @@ async def _connection_loop(self):
380379
self._stop(err)
381380
return
382381
finally:
383-
if stream_writer:
384-
await stream_writer.close()
385382
for task in tasks:
386383
task.cancel()
387384
if tasks:
388385
await asyncio.wait(tasks)
386+
if stream_writer:
387+
await stream_writer.close()
389388

390389
async def _encode_loop(self):
391390
try:

0 commit comments

Comments
 (0)