Alvaro Herrera <[EMAIL PROTECTED]> writes:
> Trivial observation: process 748 is a manually-issued VACUUM (manually,
> by cron), it's holding locks other VACUUMs are waiting for, and is
> waiting on LockBufferForCleanup.  I guess this means it lost a signal,
> or somebody else is holding a pin on the buffer.  If this is the case,
> who is it and why isn't it releasing the pin?

Yeah, this is clearly the problem --- the other guys waiting are just
queued up behind this one.

If the system is still in that state, could you reattach to the stuck
process and do
        p BufferDescriptors[781]
It might be good to do
        p BufferDescriptors[782]
as well --- I am not sure offhand whether LockBufferForCleanup takes
a 0-based or 1-based index, and in any case it's possible gcc would
have done something weird with the variable contents.  You should
see wait_backend_pid = 748 in the one we want.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to