Re: [Django] #35921: migration_test_data_persistence fails when running with parallelism > 1 and Postgres (was: migration_test_data_persistence fails when running with parallelism > 1)

3 views
Skip to first unread message

Django

unread,
Nov 19, 2024, 8:53:45 PM11/19/24
to django-...@googlegroups.com
#35921: migration_test_data_persistence fails when running with parallelism > 1 and
Postgres
-------------------------------------+-------------------------------------
Reporter: Raphael Gaschignard | Owner: (none)
Type: Bug | Status: new
Component: Testing framework | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Raphael Gaschignard):

* summary:
migration_test_data_persistence fails when running with parallelism >
1
=>
migration_test_data_persistence fails when running with parallelism >
1 and Postgres


Old description:

> Steps to reproduce:
>
> - Add the following file to `tests`, as `test_postgres.py`
>
> {{{
> import os
>
> from test_sqlite import * # NOQA
>
> DATABASES = {
> "default": {
> "ENGINE": "django.db.backends.postgresql",
> "USER": "user",
> "NAME": "django",
> "PASSWORD": "postgres",
> "HOST": "localhost",
> "PORT": 5432,
> "OPTIONS": {
> "server_side_binding": os.getenv("SERVER_SIDE_BINDING") ==
> "1",
> },
> },
> "other": {
> "ENGINE": "django.db.backends.postgresql",
> "USER": "user",
> "NAME": "django2",
> "PASSWORD": "postgres",
> "HOST": "localhost",
> "PORT": 5432,
> },
> }
> }}}
>
> - In `tests`, run the following:
>
> {{{
> python runtests.py --settings=test_postgres -k
> migration_test_data_persistence --parallel=2
> }}}
>
> An error occurs (for me at least) of the variety:
>
> {{{
> psycopg.errors.FeatureNotSupported: cannot truncate a table referenced in
> a foreign key constraint
> DETAIL: Table "model_package_advertisement_publications" references
> "model_package_publication".
> HINT: Truncate table "model_package_advertisement_publications" at the
> same time, or use TRUNCATE ... CASCADE.
> }}}
>
> Running with `--parallel=1` does not trigger this issue.
>
> This issue was introduced with the fix for #35660 (in commit
> 060a22ee2dde7aa29a5a29120087c4864887325)

New description:

Steps to reproduce:

- Add the following file to `tests`, as `test_postgres.py`

{{{
import os

from test_sqlite import * # NOQA

DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"USER": "user",
"NAME": "django",
"PASSWORD": "postgres",
"HOST": "localhost",
"PORT": 5432,
"OPTIONS": {
"server_side_binding": os.getenv("SERVER_SIDE_BINDING") ==
"1",
},
},
"other": {
"ENGINE": "django.db.backends.postgresql",
"USER": "user",
"NAME": "django2",
"PASSWORD": "postgres",
"HOST": "localhost",
"PORT": 5432,
},
}
}}}

- In `tests`, run the following:

{{{
python runtests.py --settings=test_postgres -k
migration_test_data_persistence --parallel=2
}}}

An error occurs (for me at least) of the variety:

{{{
psycopg.errors.FeatureNotSupported: cannot truncate a table referenced in
a foreign key constraint
DETAIL: Table "model_package_advertisement_publications" references
"model_package_publication".
HINT: Truncate table "model_package_advertisement_publications" at the
same time, or use TRUNCATE ... CASCADE.
}}}

Running with `--parallel=1` does not trigger this issue. The issue
triggers for me in Postgres but not with SQLite

This issue was introduced with the fix for #35660 (in commit
060a22ee2dde7aa29a5a29120087c4864887325)

--
--
Ticket URL: <https://code.djangoproject.com/ticket/35921#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Reply all
Reply to author
Forward
0 new messages