Обсуждение: Re: Old BufferDesc refcount in PrintBufferDescs and PrintPinnedBufs
Jacob Brazeal <jacob.brazeal@gmail.com> writes:
> In bufmgr.c we have the debugging functions PrintBufferDescs
> and PrintPinnedBufs, which are typically hidden behind the flag
> #ifdef NOT_USED. These functions reference the old buf->refcount and
> buf->flags fields, and so they no longer compile. I attached a patch to
> use BUF_STATE_GET_REFCOUNT instead and removed the reference to buf->flags.
Hmm. So those functions have not compiled since 48354581a of
2016-04-10, and nobody's noticed. Moreover, whatever use-case
they do have would be reduced a good deal by taking a buffer
lock (which might not be available, or our own process might
hold it already).
I'd vote for just removing them...
regards, tom lane
Hi, On 2025-01-19 09:37:54 +0900, Michael Paquier wrote: > On Fri, Jan 17, 2025 at 11:14:02PM -0800, Jacob Brazeal wrote: > > Sounds good! v3 attached. > > Removal sounds good to me. Any objections from anybody? > > Andres, perhaps you have some experience using that and would prefer > keep them and make them work? I think they're pretty useless, tbh. There's too many buffers that just printing them out is helpful - pg_buffercache is going to be a better bet. When debugging issues where pg_buffercache isn't an option (e.g. because it's a hang that doesn't allow running pg_buffercache), using DebugPrintBufferRefcount() is much more targeted. Greetings, Andres Freund
Andres Freund <andres@anarazel.de> writes:
> On 2025-01-19 09:37:54 +0900, Michael Paquier wrote:
>> Removal sounds good to me. Any objections from anybody?
>> Andres, perhaps you have some experience using that and would prefer
>> keep them and make them work?
> I think they're pretty useless, tbh. There's too many buffers that just
> printing them out is helpful - pg_buffercache is going to be a better
> bet. When debugging issues where pg_buffercache isn't an option (e.g. because
> it's a hang that doesn't allow running pg_buffercache), using
> DebugPrintBufferRefcount() is much more targeted.
Sounds like we're in agreement. I'll push Jacob's second patch.
regards, tom lane