Skip to content

Commit 26bc00b

Browse files
GitHKAndrei Neagumergify[bot]
authored
🐛 Avoids possible early garbage collection of task (ITISFoundation#8121)
Co-authored-by: Andrei Neagu <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
1 parent dbe8878 commit 26bc00b

File tree

1 file changed

+10
-1
lines changed
  • services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/modules/outputs

1 file changed

+10
-1
lines changed

services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/modules/outputs/_manager.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def __init__(
118118

119119
self._port_key_tracker = _PortKeyTracker()
120120
self._task_uploading: Task | None = None
121+
self._task_uploading_followup: Task | None = None
121122
self._task_scheduler_worker: Task | None = None
122123
self._schedule_all_ports_for_upload: bool = False
123124

@@ -171,14 +172,22 @@ def _remove_downloads(future: Future) -> None:
171172
except Exception as e: # pylint: disable=broad-except
172173
self._last_upload_error_tracker[port_key] = e
173174

174-
create_task(self._port_key_tracker.remove_all_uploading())
175+
self._task_uploading_followup = create_task(
176+
self._port_key_tracker.remove_all_uploading()
177+
)
175178

176179
self._task_uploading.add_done_callback(_remove_downloads)
177180

178181
async def _uploading_task_cancel(self) -> None:
179182
if self._task_uploading is not None:
180183
await _cancel_task(self._task_uploading, self.task_cancellation_timeout_s)
181184
await self._port_key_tracker.move_all_uploading_to_pending()
185+
self._task_uploading = None
186+
if self._task_uploading_followup is not None:
187+
await _cancel_task(
188+
self._task_uploading_followup, self.task_cancellation_timeout_s
189+
)
190+
self._task_uploading_followup = None
182191

183192
async def _scheduler_worker(self) -> None:
184193
if await self._port_key_tracker.are_pending_ports_uploading():

0 commit comments

Comments
 (0)