From d9a7dae6c4ac3fb07602c6989e7ebcb43bd47853 Mon Sep 17 00:00:00 2001 From: MarkRx Date: Thu, 30 May 2024 20:22:58 -0400 Subject: [PATCH] Better error handling on backgrounp task thread --- pr_agent/servers/azuredevops_server_webhook.py | 7 +++++-- pr_agent/servers/bitbucket_server_webhook.py | 7 +++++-- pr_agent/servers/gitlab_webhook.py | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pr_agent/servers/azuredevops_server_webhook.py b/pr_agent/servers/azuredevops_server_webhook.py index b97ae9c7..e65ee86e 100644 --- a/pr_agent/servers/azuredevops_server_webhook.py +++ b/pr_agent/servers/azuredevops_server_webhook.py @@ -43,8 +43,11 @@ def handle_request( log_context["api_url"] = url async def inner(): - with get_logger().contextualize(**log_context): - await PRAgent().handle_request(url, body) + try: + with get_logger().contextualize(**log_context): + await PRAgent().handle_request(url, body) + except Exception as e: + get_logger().error(f"Failed to handle webhook: {e}") background_tasks.add_task(inner) diff --git a/pr_agent/servers/bitbucket_server_webhook.py b/pr_agent/servers/bitbucket_server_webhook.py index c70cb01c..079af995 100644 --- a/pr_agent/servers/bitbucket_server_webhook.py +++ b/pr_agent/servers/bitbucket_server_webhook.py @@ -27,8 +27,11 @@ def handle_request( log_context["api_url"] = url async def inner(): - with get_logger().contextualize(**log_context): - await PRAgent().handle_request(url, body) + try: + with get_logger().contextualize(**log_context): + await PRAgent().handle_request(url, body) + except Exception as e: + get_logger().error(f"Failed to handle webhook: {e}") background_tasks.add_task(inner) diff --git a/pr_agent/servers/gitlab_webhook.py b/pr_agent/servers/gitlab_webhook.py index 8839c4f0..777e184f 100644 --- a/pr_agent/servers/gitlab_webhook.py +++ b/pr_agent/servers/gitlab_webhook.py @@ -29,8 +29,11 @@ def handle_request(background_tasks: BackgroundTasks, url: str, body: str, log_c log_context["api_url"] = url async def inner(): - with get_logger().contextualize(**log_context): - await PRAgent().handle_request(url, body) + try: + with get_logger().contextualize(**log_context): + await PRAgent().handle_request(url, body) + except Exception as e: + get_logger().error(f"Failed to handle webhook: {e}") background_tasks.add_task(inner)