Skip to content

Commit fcf9f37

Browse files
authored
feat(aci): Remove checks to enable open period creation (#97206)
1 parent bc71fd7 commit fcf9f37

File tree

3 files changed

+11
-13
lines changed

3 files changed

+11
-13
lines changed

src/sentry/event_manager.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,7 @@
9292
from sentry.models.grouphash import GroupHash
9393
from sentry.models.grouphistory import GroupHistoryStatus, record_group_history
9494
from sentry.models.grouplink import GroupLink
95-
from sentry.models.groupopenperiod import (
96-
GroupOpenPeriod,
97-
create_open_period,
98-
has_initial_open_period,
99-
)
95+
from sentry.models.groupopenperiod import GroupOpenPeriod, create_open_period
10096
from sentry.models.grouprelease import GroupRelease
10197
from sentry.models.groupresolution import GroupResolution
10298
from sentry.models.organization import Organization
@@ -1822,8 +1818,7 @@ def _handle_regression(group: Group, event: BaseEvent, release: Release | None)
18221818
kick_off_status_syncs.apply_async(
18231819
kwargs={"project_id": group.project_id, "group_id": group.id}
18241820
)
1825-
if has_initial_open_period(group):
1826-
create_open_period(group, activity.datetime)
1821+
create_open_period(group, activity.datetime)
18271822

18281823
return is_regression
18291824

src/sentry/models/groupopenperiod.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -276,9 +276,9 @@ def update_group_open_period(
276276
if not features.has("organizations:issue-open-periods", group.project.organization):
277277
return
278278

279-
# Until we've backfilled the GroupOpenPeriod table, we don't want to update open periods for
280-
# groups that weren't initially created with one.
281-
if not has_initial_open_period(group):
279+
# If a group was missed during backfill, we can create a new open period for it on unresolve.
280+
if not has_any_open_period(group) and new_status == GroupStatus.UNRESOLVED:
281+
create_open_period(group, timezone.now())
282282
return
283283

284284
open_period = get_latest_open_period(group)
@@ -302,8 +302,8 @@ def update_group_open_period(
302302
open_period.reopen_open_period()
303303

304304

305-
def has_initial_open_period(group: Group) -> bool:
306-
return GroupOpenPeriod.objects.filter(group=group, date_started__lte=group.first_seen).exists()
305+
def has_any_open_period(group: Group) -> bool:
306+
return GroupOpenPeriod.objects.filter(group=group).exists()
307307

308308

309309
def get_latest_open_period(group: Group) -> GroupOpenPeriod | None:

tests/sentry/event_manager/test_event_manager.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,10 @@ def test_unresolves_group_without_open_period(self, send_robust: mock.MagicMock)
389389
assert not group.is_resolved()
390390
assert send_robust.called
391391

392-
assert GroupOpenPeriod.objects.filter(group=group).count() == 0
392+
activity = Activity.objects.get(group=group, type=ActivityType.SET_REGRESSION.value)
393+
assert GroupOpenPeriod.objects.filter(group=group).count() == 1
394+
assert GroupOpenPeriod.objects.get(group=group).date_ended is None
395+
assert GroupOpenPeriod.objects.get(group=group).date_started == activity.datetime
393396

394397
@mock.patch("sentry.event_manager.plugin_is_regression")
395398
def test_does_not_unresolve_group(self, plugin_is_regression: mock.MagicMock) -> None:

0 commit comments

Comments
 (0)