From 20fb6bd2444e8adadd2a781594f6365ee9860342 Mon Sep 17 00:00:00 2001 From: Kyle Consalus Date: Fri, 11 Jul 2025 14:43:37 -0700 Subject: [PATCH 1/3] chore(aci): Remove uses of workflow-engine-post-process-async flag --- src/sentry/tasks/post_process.py | 40 ++++++++------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/src/sentry/tasks/post_process.py b/src/sentry/tasks/post_process.py index f905f3730275ee..4cdd8a6e4342a3 100644 --- a/src/sentry/tasks/post_process.py +++ b/src/sentry/tasks/post_process.py @@ -40,7 +40,6 @@ from sentry.utils.sdk import bind_organization_context, set_current_event_project from sentry.utils.sdk_crashes.sdk_crash_detection_config import build_sdk_crash_detection_configs from sentry.utils.services import build_instance_from_options_of_type -from sentry.workflow_engine.types import WorkflowEventData if TYPE_CHECKING: from sentry.eventstore.models import Event, GroupEvent @@ -955,45 +954,26 @@ def process_workflow_engine(job: PostProcessJob) -> None: """ metrics.incr("workflow_engine.issue_platform.payload.received.occurrence") - from sentry.workflow_engine.processors.workflow import process_workflows from sentry.workflow_engine.tasks.workflows import process_workflows_event - # PostProcessJob event is optional, WorkflowEventData event is required if "event" not in job: - logger.error("Missing event to create WorkflowEventData", extra={"job": job}) + logger.error("Missing event to schedule workflow task", extra={"job": job}) return try: - workflow_event_data = WorkflowEventData( - event=job["event"], - group=job["event"].group, - group_state=job.get("group_state"), - has_reappeared=job.get("has_reappeared"), - has_escalated=job.get("has_escalated"), + process_workflows_event.delay( + project_id=job["event"].project_id, + event_id=job["event"].event_id, + occurrence_id=job["event"].occurrence_id, + group_id=job["event"].group_id, + group_state=job["group_state"], + has_reappeared=job["has_reappeared"], + has_escalated=job["has_escalated"], ) except Exception: - logger.exception("Could not create WorkflowEventData", extra={"job": job}) + logger.exception("Could not process workflow task", extra={"job": job}) return - org = job["event"].project.organization - if not features.has("organizations:workflow-engine-post-process-async", org): - with sentry_sdk.start_span(op="tasks.post_process_group.workflow_engine.process_workflow"): - process_workflows(workflow_event_data) - else: - try: - process_workflows_event.delay( - project_id=job["event"].project_id, - event_id=job["event"].event_id, - occurrence_id=job["event"].occurrence_id, - group_id=job["event"].group_id, - group_state=job["group_state"], - has_reappeared=job["has_reappeared"], - has_escalated=job["has_escalated"], - ) - except Exception: - logger.exception("Could not process workflow task", extra={"job": job}) - return - def process_workflow_engine_issue_alerts(job: PostProcessJob) -> None: """ From 7c09db4df2454819d1ce5c519001dc726abcbf40 Mon Sep 17 00:00:00 2001 From: Kyle Consalus Date: Mon, 14 Jul 2025 09:13:39 -0700 Subject: [PATCH 2/3] Fix test --- tests/sentry/workflow_engine/test_integration.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/sentry/workflow_engine/test_integration.py b/tests/sentry/workflow_engine/test_integration.py index b8e1b781b3625c..008dd585598e20 100644 --- a/tests/sentry/workflow_engine/test_integration.py +++ b/tests/sentry/workflow_engine/test_integration.py @@ -152,7 +152,7 @@ def test_workflow_engine__workflows(self): self.create_event(self.project.id, datetime.utcnow(), str(self.detector.id)) with mock.patch( - "sentry.workflow_engine.processors.workflow.process_workflows" + "sentry.workflow_engine.tasks.workflows.process_workflows_event.delay" ) as mock_process_workflow: self.call_post_process_group(self.group.id) mock_process_workflow.assert_called_once() @@ -176,7 +176,7 @@ def test_workflow_engine__workflows__other_events(self): self.group = Group.objects.get(grouphash__hash=self.occurrence.fingerprint[0]) with mock.patch( - "sentry.workflow_engine.processors.workflow.process_workflows" + "sentry.workflow_engine.tasks.workflows.process_workflows_event.delay" ) as mock_process_workflow: self.call_post_process_group(error_event.group_id) @@ -189,7 +189,7 @@ def test_workflow_engine__workflows__no_flag(self): assert self.group with mock.patch( - "sentry.workflow_engine.processors.workflow.process_workflows" + "sentry.workflow_engine.tasks.workflows.process_workflows_event.delay" ) as mock_process_workflow: self.call_post_process_group(self.group.id) From 2053cebd0c8ad7a9f921a718518bb76e81e09cfa Mon Sep 17 00:00:00 2001 From: Kyle Consalus Date: Mon, 14 Jul 2025 09:20:58 -0700 Subject: [PATCH 3/3] fix other test --- tests/sentry/incidents/test_metric_issue_post_process.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sentry/incidents/test_metric_issue_post_process.py b/tests/sentry/incidents/test_metric_issue_post_process.py index 1f7d0a1b5de013..4c19f73f0c8c4f 100644 --- a/tests/sentry/incidents/test_metric_issue_post_process.py +++ b/tests/sentry/incidents/test_metric_issue_post_process.py @@ -70,7 +70,7 @@ def setUp(self): @with_feature("organizations:issue-metric-issue-post-process-group") @with_feature("organizations:workflow-engine-metric-alert-processing") @with_feature("organizations:workflow-engine-process-metric-issue-workflows") - @patch("sentry.workflow_engine.processors.workflow.process_workflows") + @patch("sentry.workflow_engine.tasks.workflows.process_workflows_event.delay") def test_occurrence_post_process(self, mock_process_workflows): value = self.critical_detector_trigger.comparison + 1 packet = QuerySubscriptionUpdate(