getsentry / getsentry/sentry

Flaky test: tests/sentry/dashboards/endpoints/test_organization_dashboard_details.py::OrganizationDashboardDetailsDeleteTest::test_allow_delete_as_superuser_but_no_edit_perms

Open
#109,000 1 comment 0 reactions 0 assignees View on GitHub
flaky-test Tests
Dominant language
Python
Stars
44.8k
Forks
4.9k
Avg merge
21h 10m
Merged PRs (30d)
635

Description

Failing test: `tests/sentry/dashboards/endpoints/test_organization_dashboard_details.py::OrganizationDashboardDetailsDeleteTest::test_allow_delete_as_superuser_but_no_edit_perms`
Sentry sha: 3ae13ebdfdfbfd0d73e8a04d635b9ae4d95251de
Run: https://github.com/getsentry/sentry/actions/runs/22295043618

```
.venv/lib/python3.13/site-packages/django/db/backends/utils.py:105: in _execute
return self.cursor.execute(sql, params)
src/sentry/db/postgres/decorators.py:16: in inner
return func(self, *args, **kwargs)
src/sentry/db/postgres/base.py:95: in execute
return self.cursor.execute(sql, params)
E psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "sentry_dashboard_pkey"
E DETAIL: Key (id)=(67) already exists.

The above exception was the direct cause of the following exception:
tests/sentry/dashboards/endpoints/test_organization_dashboard_details.py:772: in test_allow_delete_as_superuser_but_no_edit_perms
dashboard = Dashboard.objects.create(
src/sentry/silo/base.py:158: in override
return original_method(*args, **kwargs)
.venv/lib/python3.13/site-packages/django/db/models/manager.py:87: in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
src/sentry/silo/base.py:158: in override
return original_method(*args, **kwargs)
.venv/lib/python3.13/site-packages/django/db/models/query.py:665: in create
obj.save(force_insert=True, using=self.db)
src/sentry/silo/base.py:158: in override
return original_method(*args, **kwargs)
.venv/lib/python3.13/site-packages/django/db/models/base.py:902: in save
self.save_base(
src/sentry/silo/base.py:158: in override
return original_method(*args, **kwargs)
.venv/lib/python3.13/site-packages/django/db/models/base.py:1008: in save_base
updated = self._save_table(
.venv/lib/python3.13/site-packages/django/db/models/base.py:1169: in _save_table
results = self._do_insert(
.venv/lib/python3.13/site-packages/django/db/models/base.py:1210: in _do_insert
return manager._insert(
.venv/lib/python3.13/site-packages/django/db/models/manager.py:87: in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
.venv/lib/python3.13/site-packages/django/db/models/query.py:1873: in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
.venv/lib/python3.13/site-packages/django/db/models/sql/compiler.py:1882: in execute_sql
cursor.execute(sql, params)
.venv/lib/python3.13/site-packages/django/db/backends/utils.py:122: in execute
return super().execute(sql, params)
.venv/lib/python3.13/site-packages/sentry_sdk/utils.py:1870: in runner
return original_function(*args, **kwargs)
.venv/lib/python3.13/site-packages/django/db/backends/utils.py:79: in execute
return self._execute_with_wrappers(
.venv/lib/python3.13/site-packages/django/db/backends/utils.py:92: in _execute_with_wrappers
return executor(sql, params, many, context)
src/sentry/db/postgres/base.py:70: in _execute__include_sql_in_error
return execute(sql, params, many, context)
src/sentry/db/postgres/base.py:58: in _execute__clean_params
return execute(sql, clean_bad_params(params), many, context)
src/sentry/testutils/hybrid_cloud.py:133: in __call__
return execute(*params)
.venv/lib/python3.13/site-packages/django/db/backends/utils.py:100: in _execute
with self.db.wrap_database_errors:
.venv/lib/python3.13/site-packages/django/db/utils.py:91: in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
.venv/lib/python3.13/site-packages/django/db/backends/utils.py:105: in _execute
return self.cursor.execute(sql, params)
src/sentry/db/postgres/decorators.py:16: in inner
return func(self, *args, **kwargs)
src/sentry/db/postgres/base.py:95: in execute
return self.cursor.execute(sql, params)
E django.db.utils.IntegrityError: duplicate key value violates unique constraint "sentry_dashboard_pkey"
E DETAIL: Key (id)=(67) already exists.
E 
E SQL: INSERT INTO "sentry_dashboard" ("id", "title", "created_by_id", "organization_id", "date_added", "visits", "last_visited", "filters", "prebuilt_id") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, DEFAULT) RETURNING "sentry_dashboard"."id", "sentry_dashboard"."prebuilt_id"
```

Contributor guide

Open the contributing guide

Research direction

Start with tests/sentry/dashboards/endpoints/test_organization_dashboard_details.py at line 772 and run OrganizationDashboardDetailsDeleteTest::test_allow_delete_as_superuser_but_no_edit_perms. Read the Dashboard creation in this test and the surrounding test setup, then investigate why PostgreSQL reports an existing id of 67. Done means the named test passes reliably without the duplicate-key failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, postgresql, python
Domain
backend, database, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.