Opened 4 days ago
Last modified 4 days ago
#35921 assigned Cleanup/optimization
migration_test_data_persistence fails when running with parallelism > 1 — at Initial Version
Reported by: | Raphael Gaschignard | Owned by: | |
---|---|---|---|
Component: | Testing framework | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Raphael Gaschignard, Jacob Walls | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Steps to reproduce:
- Add the following file to
tests
, astest_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 should occur 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. I imagine that something is happening regarding the test sharding code, given that this test calls out to a command that might not be persisting the sharding logic.