Litao Wu <litaowu@yahoo.com> writes:
> It happened again.
> This time it hangs when we drop/create index.
> Here is gdb info with --enable-debug postgres.
Well, that pretty much removes all doubt: something has left the buffer
context lock (cntx_lock) set on a buffer that certainly ought to be free.
The problem here is that REINDEX (or CREATE INDEX in this case) is the
victim, not the perpetrator, so we still don't know exactly what's
causing the error. We need to go backwards in time, so to speak, to
identify the code that's leaving the buffer locked when it shouldn't.
I don't offhand have a good idea about how to do that. Is there another
process that is also getting stuck when REINDEX does (if so please get
a backtrace from it too)?
BTW, what Postgres version are you using again? The line numbers in
your trace don't square with any current version of bufmgr.c ...
regards, tom lane