Skip to content

Commit 108505d

Browse files
committed
Prevent memory context logging from sending log message to connected client.
When pg_log_backend_memory_contexts() is executed, the target backend should use LOG_SERVER_ONLY to log its memory contexts, to prevent them from being sent to its connected client regardless of client_min_messages. But previously the backend unexpectedly used LOG to log the message "logging memory contexts of PID %d" and it could be sent to the client. This is a bug in memory context logging. To fix the bug, this commit changes that message so that it's logged with LOG_SERVER_ONLY. Back-patch to v14 where pg_log_backend_memory_contexts() was added. Author: Fujii Masao Reviewed-by: Bharath Rupireddy, Atsushi Torikoshi Discussion: https://postgr.es/m/82c12f36-86f7-5e72-79af-7f5c37f6cad7@oss.nttdata.com
1 parent 7340ace commit 108505d

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/backend/utils/mmgr/mcxt.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,8 +1042,14 @@ ProcessLogMemoryContextInterrupt(void)
10421042
{
10431043
LogMemoryContextPending = false;
10441044

1045-
ereport(LOG,
1046-
(errmsg("logging memory contexts of PID %d", MyProcPid)));
1045+
/*
1046+
* Use LOG_SERVER_ONLY to prevent this message from being sent to the
1047+
* connected client.
1048+
*/
1049+
ereport(LOG_SERVER_ONLY,
1050+
(errhidestmt(true),
1051+
errhidecontext(true),
1052+
errmsg("logging memory contexts of PID %d", MyProcPid)));
10471053

10481054
/*
10491055
* When a backend process is consuming huge memory, logging all its memory

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy