Thread: Reduce DEBUG level of catcache refreshing messages

Reduce DEBUG level of catcache refreshing messages

From
"Jelte Fennema-Nio"
Date:
When testing extensions using pgregress, it can be useful to introduce
some new DEBUG logs which are specific to the extension and change the
log level during part of the of the test.

There's a problem though: Often a "rehashing catalog cache ..." debug
message will also show up in those cases. It's not always possible to
predict when these messages show, and when they do their contents can
easily change if changes are made to an unrelated test or when run
against a different Postgres version. This change lowers the log level
of these messages to DEBUG5, so that they can be ignored while still
showing other (more predictable) DEBUG messages.

Attachment

Re: Reduce DEBUG level of catcache refreshing messages

From
Fabrízio de Royes Mello
Date:

On Fri, May 30, 2025 at 9:33 AM Jelte Fennema-Nio <postgres@jeltef.nl> wrote:
When testing extensions using pgregress, it can be useful to introduce
some new DEBUG logs which are specific to the extension and change the
log level during part of the of the test.

There's a problem though: Often a "rehashing catalog cache ..." debug
message will also show up in those cases. It's not always possible to
predict when these messages show, and when they do their contents can
easily change if changes are made to an unrelated test or when run
against a different Postgres version. This change lowers the log level
of these messages to DEBUG5, so that they can be ignored while still
showing other (more predictable) DEBUG messages.


This is a very good idea. In TimescaleDB we filter out such kind of output in order to not end up with flaky test outputs.

The patch LGTM.

--
Fabrízio de Royes Mello

Re: Reduce DEBUG level of catcache refreshing messages

From
Tom Lane
Date:
"Jelte Fennema-Nio" <postgres@jeltef.nl> writes:
> When testing extensions using pgregress, it can be useful to introduce
> some new DEBUG logs which are specific to the extension and change the
> log level during part of the of the test.

> There's a problem though: Often a "rehashing catalog cache ..." debug
> message will also show up in those cases. It's not always possible to
> predict when these messages show, and when they do their contents can
> easily change if changes are made to an unrelated test or when run
> against a different Postgres version. This change lowers the log level
> of these messages to DEBUG5, so that they can be ignored while still
> showing other (more predictable) DEBUG messages.

I don't have an opinion about the merits of this exact change, but
I wish somebody would go through all our DEBUGn messages and come up
with some coherent proposal for what the various levels should be
used for.  Right now I think those choices are purely idiosyncratic
and have been made differently in different patches.

Your usage example already suggests one possible rule:

* DEBUG1 is reserved for testing patches and should never be used
in permanent code.

Maybe that particular idea is not appropriate for some reason.
But if we could have *some* kind of explainable basis for
assigning DEBUGn levels, I think our lives would be better.

            regards, tom lane