From 26bf1bca3fa9cefe4416db6f84080615f2f68619 Mon Sep 17 00:00:00 2001 From: Alexander Kozlovsky Date: Mon, 2 Oct 2023 11:29:14 +0200 Subject: [PATCH] Fixes #7600: handle exceptions in task.print_stack() --- src/tribler/core/utilities/slow_coro_detection/utils.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/tribler/core/utilities/slow_coro_detection/utils.py b/src/tribler/core/utilities/slow_coro_detection/utils.py index 44edf820cde..f660f178d56 100644 --- a/src/tribler/core/utilities/slow_coro_detection/utils.py +++ b/src/tribler/core/utilities/slow_coro_detection/utils.py @@ -24,8 +24,12 @@ def format_info(handle: Handle, include_stack: bool = False, stack_cut_duration: if not main_stack_tracking_is_enabled(): stream = io.StringIO() - task.print_stack(limit=limit, file=stream) - stack = stream.getvalue() + try: + task.print_stack(limit=limit, file=stream) + except Exception as e: # pylint: disable=broad-except + stack = f'Stack is unavailable: {e.__class__.__name__}: {e}' + else: + stack = stream.getvalue() else: stack = get_main_thread_stack(stack_cut_duration, limit, enable_profiling_tip) return f"{task}\n{stack}"