From d22d2da03d5eeae7243536a5322b046c6ed94d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Tue, 5 Aug 2025 16:17:03 -0700 Subject: [PATCH] PipelineTask: always try to cancel things In a previous commit we only cleanup things if the user run `task.cancel()`. However, if the task finishes cleanly we were not cancelling anything. --- src/pipecat/pipeline/task.py | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/pipecat/pipeline/task.py b/src/pipecat/pipeline/task.py index 1640d589c..1d9d642e0 100644 --- a/src/pipecat/pipeline/task.py +++ b/src/pipecat/pipeline/task.py @@ -459,20 +459,10 @@ class PipelineTask(BasePipelineTask): # awaiting a task. pass finally: - # We only cancel things cleanly if we know we are the ones - # cancelling. It's possibe that we get an asyncio.CancelledError - # from the outside, in which case it is very likely other tasks have - # been already cancelled (e.g. when python is shutting down) so we - # can't assume things are being cancelled nicely. - if self._cancelled: - await self._cancel_tasks() - await self._cleanup(cleanup_pipeline) - if self._check_dangling_tasks: - self._print_dangling_tasks() - else: - logger.warning( - f"Pipeline task {self} is not being cancelled properly (use cancel() method)" - ) + await self._cancel_tasks() + await self._cleanup(cleanup_pipeline) + if self._check_dangling_tasks: + self._print_dangling_tasks() self._finished = True async def queue_frame(self, frame: Frame):