Browse Source

fix(user report migration) Add error handling to migration (#16726)

Add error handling and some logging to the migration so that the whole operation
doesn't crash on bad data.
evanh 5 years ago
parent
commit
1dd53687b1
1 changed files with 18 additions and 1 deletions
  1. 18 1
      src/sentry/migrations/0028_user_reports.py

+ 18 - 1
src/sentry/migrations/0028_user_reports.py

@@ -2,10 +2,19 @@
 # Generated by Django 1.11.27 on 2020-01-23 19:07
 from __future__ import unicode_literals
 
+import logging
+
 from django.db import migrations
 
 from sentry import eventstore
 from sentry.utils.query import RangeQuerySetWrapper
+from sentry.utils.snuba import (
+    SnubaError,
+    QueryOutsideRetentionError,
+    QueryOutsideGroupActivityError,
+)
+
+logger = logging.getLogger(__name__)
 
 
 def backfill_user_reports(apps, schema_editor):
@@ -18,7 +27,15 @@ def backfill_user_reports(apps, schema_editor):
     user_reports = UserReport.objects.filter(group__isnull=True, environment__isnull=True)
 
     for report in RangeQuerySetWrapper(user_reports, step=1000):
-        event = eventstore.get_event_by_id(report.project_id, report.event_id)
+        try:
+            event = eventstore.get_event_by_id(report.project_id, report.event_id)
+        except (SnubaError, QueryOutsideGroupActivityError, QueryOutsideRetentionError) as se:
+            logger.warn(
+                "failed to fetch event %s for project %d: %s"
+                % (report.event_id, report.project_id, se)
+            )
+            continue
+
         if event:
             report.update(group_id=event.group_id, environment=event.get_environment())