Fix WaitOnLock() to ensure that the process's "waiting" flag is reset after
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 2 Feb 2008 22:26:23 +0000 (22:26 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 2 Feb 2008 22:26:23 +0000 (22:26 +0000)
commitc16f41317d80320181bfae45dff903ea2229813f
tree0d9a69bf8a875819da137a41509cb180910570c4
parentd9959d992ca27f43fd233a0c61befd17e393a200
Fix WaitOnLock() to ensure that the process's "waiting" flag is reset after
erroring out of a wait.  We can use a PG_TRY block for this, but add a comment
explaining why it'd be a bad idea to use it for any other state cleanup.

Back-patch to 8.2.  Prior releases had the same issue, but only with respect
to the process title, which is likely to get reset almost immediately anyway
after the transaction aborts, so it seems not worth changing them.  In 8.2
and HEAD, the pg_stat_activity "waiting" flag could remain set incorrectly
for a long time.

Per report from Gurjeet Singh.
src/backend/storage/lmgr/lock.c