Recently I bumped into the following error:
(psycopg2.extensions.TransactionRollbackError) could not serialize access due to concurrent update
CONTEXT: SQL statement "SELECT 1 FROM ONLY "public"."users" x WHERE "id" OPERATOR(pg_catalog.=) $1 FOR KEY SHARE OF x"
I was using flask sqlalchemy in python 3.5, RDS 9.5.2. After adding a repeatable read to one of the views. The error happened rarely and it was hard to trace. I digged into the server logs in RDS and found out there was no other transactions updating the same row.
After consulting the IRC channel and some said it was a FOREIGN key error. Indeed it was, Luckily i had an audit trigger in place and saw that the row I was updating had a foreign key to the users table. This user was active that time and did a transaction at the same moment this row is being updated.
After consulting the IRC channel and some said it was a FOREIGN key error. Indeed it was, Luckily i had an audit trigger in place and saw that the row I was updating had a foreign key to the users table. This user was active that time and did a transaction at the same moment this row is being updated.