From 2ce5242718219a1f49804499936865f5ce60fa32 Mon Sep 17 00:00:00 2001 From: "sentry[bot]" <39604003+sentry[bot]@users.noreply.github.com> Date: Fri, 31 Jul 2026 16:49:20 +0000 Subject: [PATCH] fix(worker): fail open when timeseries DB connection fails --- apps/worker/services/bundle_analysis/report.py | 14 +++++++++++--- apps/worker/tasks/save_commit_measurements.py | 14 +++++++++++--- apps/worker/tasks/upload_finisher.py | 15 +++++++++++---- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/apps/worker/services/bundle_analysis/report.py b/apps/worker/services/bundle_analysis/report.py index c3b3522e63..22f5eee476 100644 --- a/apps/worker/services/bundle_analysis/report.py +++ b/apps/worker/services/bundle_analysis/report.py @@ -410,9 +410,17 @@ def save_measurements( # fetch existing bundle report from storage bundle_analysis_report = bundle_loader.load(commit_report.external_id) - dataset_names = [ - dataset.name for dataset in repository_datasets_query(commit.repository) - ] + try: + dataset_names = [ + dataset.name + for dataset in repository_datasets_query(commit.repository) + ] + except Exception: + log.warning( + "save_measurements: failed to query timeseries datasets, skipping measurements", + exc_info=True, + ) + dataset_names = [] db_session = commit.get_db_session() bundle_report = bundle_analysis_report.bundle_report(bundle_name) diff --git a/apps/worker/tasks/save_commit_measurements.py b/apps/worker/tasks/save_commit_measurements.py index aa87277085..5472219377 100644 --- a/apps/worker/tasks/save_commit_measurements.py +++ b/apps/worker/tasks/save_commit_measurements.py @@ -96,9 +96,17 @@ def run_impl( return {"successful": False, "error": "no_commit_in_db"} if dataset_names is None: - dataset_names = [ - dataset.name for dataset in repository_datasets_query(commit.repository) - ] + try: + dataset_names = [ + dataset.name + for dataset in repository_datasets_query(commit.repository) + ] + except Exception: + log.warning( + "save_commit_measurements: failed to query timeseries datasets, skipping", + exc_info=True, + ) + return {"successful": False, "error": "timeseries_db_unavailable"} if len(dataset_names) == 0: return diff --git a/apps/worker/tasks/upload_finisher.py b/apps/worker/tasks/upload_finisher.py index 1662137032..355103626b 100644 --- a/apps/worker/tasks/upload_finisher.py +++ b/apps/worker/tasks/upload_finisher.py @@ -572,10 +572,17 @@ def _handle_finisher_lock( if is_timeseries_enabled(): log.info("handle_finisher_lock: Saving commit measurements") - dataset_names = [ - dataset.name - for dataset in repository_datasets_query(repository) - ] + try: + dataset_names = [ + dataset.name + for dataset in repository_datasets_query(repository) + ] + except Exception: + log.warning( + "handle_finisher_lock: failed to query timeseries datasets, skipping commit measurements", + exc_info=True, + ) + dataset_names = [] if dataset_names: self.app.tasks[ timeseries_save_commit_measurements_task_name