"Steven Flatt" <steven.flatt@gmail.com> writes:
> On 1/17/08, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> What I think might be happening is a three-way deadlock involving these
>> two and a third process that has the desired buffer lock. Have you got
>> anything else that seems to be stuck?
> Don't see a third process that is stuck...
Hmm. The only other theory I can think of is that some process forgot
about a buffer pin it was holding, or the wakeup signal to release the
autovac process somehow got lost; either of which would be significant
bugs.
Do you still have the hung processes available? It would be really
useful to take a look at the buffer header that the autovac process's
LockBufferForCleanup() is working on. (In gdb, "f 3" then "p *bufHdr")
regards, tom lane