On Feb 2, 2008 2:28 PM, Tom Lane <[EMAIL PROTECTED]> wrote: > I wrote: > > "Gurjeet Singh" <[EMAIL PROTECTED]> writes: > >> I saw a strange behaviour on one of the production boxes. The > >> pg_stat_activity shows a process as <IDLE> and yet 'waiting' !!! On top > of > >> it (understandably, since its IDLE), there are no entries for this pid > in > >> pg_locks! > > > Hmm, I can reproduce something like this by aborting a wait for lock. > > It seems the problem is that WaitOnLock() is ignoring its own good > > advice, assuming that it can do cleanup work after waiting. > > I've committed a fix for this. (Too late for 8.3.0, unfortunately.) >
Thanks. Like 8.2, can it not be back-patched on 8.3 too? I just looked at the patch... Isn't PG_TRY() an expensive call to make in the lock.c code? I was thinking of registering a Xact callback using RegisterXactCallback() and performing 'waiting' reset in that callback if the Xact event is XACT_EVENT_ABORT. That would have been compliant with the previous comments ('if we fail, any cleanup must happen in xact abort processing, not here'). Comments. Best regards, -- [EMAIL PROTECTED] [EMAIL PROTECTED] gmail | hotmail | indiatimes | yahoo }.com EnterpriseDB http://www.enterprisedb.com 17° 29' 34.37"N, 78° 30' 59.76"E - Hyderabad 18° 32' 57.25"N, 73° 56' 25.42"E - Pune 37° 47' 19.72"N, 122° 24' 1.69" W - San Francisco * http://gurjeet.frihost.net Mail sent from my BlackLaptop device