Почему это предложение SQL застревает и не завершается
Я использую PostgreSQL, и все запросы работали нормально для всех наших пользователей. Но только не сейчас. Несколько часов назад некоторые предложения не работают для некоторых пользователей. Например:
select comments from appointments_appointmentlog where id=102501539;
Если я запускаю это предложение в инструменте psql, оно работает нормально. Но если я использую другой идентификатор (один из проблемных), то он застревает:
UPDATE appointments_appointmentlog SET comments='A' WHERE id=30042047;
Команда select работает нормально, хотя:
select comments from appointments_appointmentlog where id=30042047;
Есть идеи, что может произойти? Нужна ли вам какая-либо дополнительная информация? Также, в качестве примечания, я могу обновлять, создавать и удалять другие строки в той же appointments_appointmentlog таблице.
Примечание: не уверен, имеет ли это значение, но мы используем Django 1.1 (знаю, знаю, слишком старый). Проблема также может быть воспроизведена с помощью raw sql, хотя и без использования django.
Редактировать
Как сказал @a_horse_with_no_name в комментариях, это замок:
LOG: process 3637036 still waiting for ShareLock on transaction 2604361155 after 4413702.724 ms
DETAIL: Process holding the lock: 3635781. Wait queue: 3637036.
CONTEXT: while deleting tuple (429566,2) in relation "appointments_appointmentlog"
STATEMENT: DELETE FROM "appointments_appointmentlog" WHERE "appointments_appointmentlog"."id" IN (30042047)
Не знаю, как его разблокировать.