IntegrityError during CreateIIIFURL calls by a Socface script
Sentry Issue: ARKINDEX-BACKEND-1SB
UniqueViolation: duplicate key value violates unique constraint "images_image_server_id_path_06958961_uniq"
DETAIL: Key (server_id, path)=(232, frad092%2FNeuilly-sur-Seine%2F1D_NUM_NEU_1921_1%2FFRAD092_1MI162_0161_P.JPG) already exists.
File "django/db/backends/utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
IntegrityError: duplicate key value violates unique constraint "images_image_server_id_path_06958961_uniq"
DETAIL: Key (server_id, path)=(232, frad092%2FNeuilly-sur-Seine%2F1D_NUM_NEU_1921_1%2FFRAD092_1MI162_0161_P.JPG) already exists.
(23 additional frame(s) were not displayed)
...
File "django/db/backends/utils.py", line 67, in execute
return self._execute_with_wrappers(
File "django/db/backends/utils.py", line 80, in _execute_with_wrappers
return executor(sql, params, many, context)
File "django/db/backends/utils.py", line 84, in _execute
with self.db.wrap_database_errors:
File "django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "django/db/backends/utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
This is in prod, but this doesn't look like it could be a stale read because CreateIIIFURL already has a whole bunch of .using('default') everywhere. I checked locally with a manage.py runserver_plus --print-sql and my local config set to make Django use the same database as a replica, and found that all queries for images and image servers on this endpoint go to default.
It sounds like it might be this line that makes the calls that are getting these errors, but since I don't know anything about Socface I'm just guessing.
The URL is not getting renamed weirdly as described in #148, and #1425 is not occurring at all on the relevant ImageServer.
Edited by Erwan Rouchet