"Hiroshi Inoue" <Inoue@tpf.co.jp> writes:
>> Now VACUUM comes along, finds no live tuples, and decides to truncate
>> the relation to zero blocks. During the truncation,
>> FlushRelationBuffers sees that the buffer it's flushing is still marked
>> dirty, and hence emits the above notice.
> This means vacuum doesn't necessarily flush all dirty buffers of
> the target table. Doesn't this break the assumption of pg_upgrade ?
No, because it does still flush the buffer. It's only emitting a
warning, because it thinks this condition suggests a bug in VACUUM.
But with the way bufmgr behaves now, the condition is actually fairly
normal, and so the warning is no longer of any value.
regards, tom lane