Skip to content

Commit 186d976

Browse files
committed
ensure task is not dereferenced
1 parent e0d6282 commit 186d976

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

services/web/server/src/simcore_service_webserver/projects/_crud_api_delete.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
from aiohttp import web
1313
from models_library.projects import ProjectID
1414
from models_library.users import UserID
15+
from servicelib.aiohttp.application_keys import APP_FIRE_AND_FORGET_TASKS_KEY
16+
from servicelib.utils import fire_and_forget_task
1517

1618
from ..director_v2 import director_v2_service
1719
from ..storage.api import delete_data_folders_of_project
@@ -189,21 +191,19 @@ def _log_state_when_done(fut: asyncio.Future):
189191
)
190192

191193
# ------
192-
193-
task = asyncio.create_task(
194+
task = fire_and_forget_task(
194195
delete_project(
195196
app,
196197
project_uuid,
197198
user_id,
198199
simcore_user_agent,
199200
remove_project_dynamic_services,
200201
),
201-
name=_DELETE_PROJECT_TASK_NAME.format(project_uuid, user_id),
202+
task_suffix_name=_DELETE_PROJECT_TASK_NAME.format(project_uuid, user_id),
203+
fire_and_forget_tasks_collection=app[APP_FIRE_AND_FORGET_TASKS_KEY],
202204
)
203205

204-
assert task.get_name() == _DELETE_PROJECT_TASK_NAME.format( # nosec
205-
project_uuid, user_id
206-
)
206+
assert task in get_scheduled_tasks(project_uuid, user_id) # nosec
207207

208208
task.add_done_callback(_log_state_when_done)
209209
return task
@@ -214,5 +214,7 @@ def get_scheduled_tasks(project_uuid: ProjectID, user_id: UserID) -> list[asynci
214214
return [
215215
task
216216
for task in asyncio.all_tasks()
217-
if task.get_name() == _DELETE_PROJECT_TASK_NAME.format(project_uuid, user_id)
217+
if task.get_name().endswith(
218+
_DELETE_PROJECT_TASK_NAME.format(project_uuid, user_id)
219+
)
218220
]

0 commit comments

Comments
 (0)