"Clarence" <clarence1126@gmail.com> writes:
> I have a completely idle postgresql system (all backends "idle", none
> "in transaction"); every time I attempt to vacuum a particular table,
> it hangs after a while.
> ...
> In the system error log there is this line:
> could not write block 32756 of relation 1663/134097/385649401:
> No space left on device
> The referenced block is in the table's index file. The disk has plenty
> of space.
... but at one time not so much, right?
> Someone tried to drop the index and got this:
> ERROR: FlushRelationBuffers("idx_ld1", 0): block 32756 is referenced
> (private 0, global 1)
What it looks like to me is that some backend tried to write out a dirty
page, failed for lack of disk space, and neglected to release the buffer
pin during error recovery. The extra pin would block VACUUM but not
much of anything else. A postmaster restart should clear the problem.
I seem to recall having fixed a bug like this in the past. What PG
version are you running?
regards, tom lane