Skip to content

Commit 75d03e7

Browse files
committed
Remove strategy, leave fingerprinting
1 parent b0b601e commit 75d03e7

2 files changed

Lines changed: 2 additions & 39 deletions

File tree

src/sentry/grouping/strategies/configurations.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,3 @@ def register_grouping_config(id: str, **kwargs) -> type[StrategyConfiguration]:
7272
},
7373
enhancements_base="all-platforms:2025-11-21",
7474
)
75-
76-
# Experimental config with thread-aware grouping
77-
THREAD_GROUPING_CONFIG = "newstyle:2025-with-threads"
78-
register_grouping_config(
79-
id=THREAD_GROUPING_CONFIG,
80-
base=FALL_2025_GROUPING_CONFIG,
81-
initial_context={
82-
# Enable thread name in automatic grouping
83-
# When enabled, errors in different threads (by name) will create separate issues
84-
"include_thread_name_in_grouping": True
85-
},
86-
enhancements_base="all-platforms:2025-11-21",
87-
)

src/sentry/grouping/strategies/newstyle.py

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from typing import TYPE_CHECKING, Any
99

1010
from sentry.grouping.component import (
11-
BaseGroupingComponent,
1211
ChainedExceptionGroupingComponent,
1312
ContextLineGroupingComponent,
1413
ErrorTypeGroupingComponent,
@@ -23,7 +22,6 @@
2322
NSErrorDomainGroupingComponent,
2423
NSErrorGroupingComponent,
2524
StacktraceGroupingComponent,
26-
ThreadNameGroupingComponent,
2725
ThreadsGroupingComponent,
2826
)
2927
from sentry.grouping.strategies.base import (
@@ -885,46 +883,24 @@ def threads(
885883
def _get_thread_components(
886884
threads: list[dict[str, Any]], event: Event, context: GroupingContext, **kwargs: dict[str, Any]
887885
) -> ComponentsByVariant | None:
888-
# Only process single-thread scenarios (existing behavior)
889-
# Multiple threads are ambiguous for grouping
890886
if len(threads) != 1:
891887
return None
892888

893-
thread = threads[0]
894-
stacktrace = thread.get("stacktrace")
895-
896-
# Check if config enables thread name in grouping via initial_context
897-
include_thread_name = context.get("include_thread_name_in_grouping", False)
898-
899-
# Collect thread metadata components (only thread name, as IDs are random)
900-
thread_metadata: list[BaseGroupingComponent[str]] = []
901-
if include_thread_name and thread.get("name"):
902-
thread_metadata.append(
903-
ThreadNameGroupingComponent(
904-
values=[thread["name"]],
905-
contributes=True,
906-
hint="thread name included in grouping",
907-
)
908-
)
909-
910-
# If no stacktrace, return early (thread metadata can't group without frames)
889+
stacktrace = threads[0].get("stacktrace")
911890
if not stacktrace:
912891
return {
913892
"app": ThreadsGroupingComponent(
914893
contributes=False, hint="ignored because thread has no stacktrace"
915894
)
916895
}
917896

918-
# Build stacktrace components for each variant with thread metadata
919897
thread_components_by_variant = {}
920898

921899
for variant_name, stacktrace_component in context.get_grouping_components_by_variant(
922900
stacktrace, event=event, **kwargs
923901
).items():
924902
thread_components_by_variant[variant_name] = ThreadsGroupingComponent(
925-
values=[stacktrace_component],
926-
frame_counts=stacktrace_component.frame_counts,
927-
metadata=thread_metadata,
903+
values=[stacktrace_component], frame_counts=stacktrace_component.frame_counts
928904
)
929905

930906
return thread_components_by_variant

0 commit comments

Comments
 (0)