Many "loaded library" logs by preload libraries

Started by ITAGAKI Takahiroabout 17 years ago4 messages
#1ITAGAKI Takahiro
itagaki.takahiro@oss.ntt.co.jp

Hi,

If we set shared_preload_libraries or local_preload_libraries to
load some modules, "loaded library" messages are logged in server
log every new connections and autovacuum workers.

LOG: loaded library "pg_stat_statements"

Messages by shared_preload_libraries are logged only once
on non-EXEC_BACKEND platforms, but many times on Windows.
On the other hand, local_preload_libraries outputs logs
meny times in all platforms.

Is it too noisy? How about reducing the log level to DEBUG
and/or logging them only in postmaster?

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: ITAGAKI Takahiro (#1)
Re: Many "loaded library" logs by preload libraries

ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> writes:

If we set shared_preload_libraries or local_preload_libraries to
load some modules, "loaded library" messages are logged in server
log every new connections and autovacuum workers.
LOG: loaded library "pg_stat_statements"

Yeah, I was noticing that myself while testing pg_stat_statements.
I agree that we should fix it to reduce the message level for reloads
occurring in child processes. I'd suggest using DEBUG2 if
(IsUnderPostmaster && process_shared_preload_libraries_in_progress).
I'm not so enthused about eliminating messaging for
local_preload_libraries, though.

regards, tom lane

#3ITAGAKI Takahiro
itagaki.takahiro@oss.ntt.co.jp
In reply to: Tom Lane (#2)
Re: Many "loaded library" logs by preload libraries

Tom Lane <tgl@sss.pgh.pa.us> wrote:

ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> writes:

If we set shared_preload_libraries or local_preload_libraries to
load some modules, "loaded library" messages are logged in server
log every new connections and autovacuum workers.

Yeah, I was noticing that myself while testing pg_stat_statements.
I agree that we should fix it to reduce the message level for reloads
occurring in child processes. I'd suggest using DEBUG2 if
(IsUnderPostmaster && process_shared_preload_libraries_in_progress).
I'm not so enthused about eliminating messaging for
local_preload_libraries, though.

Here is a patch to do it.

Index: src/backend/utils/init/miscinit.c
===================================================================
--- src/backend/utils/init/miscinit.c	(HEAD)
+++ src/backend/utils/init/miscinit.c	(fixed)
@@ -1146,6 +1146,7 @@
 	char	   *rawstring;
 	List	   *elemlist;
 	ListCell   *l;
+	int			elevel;

if (libraries == NULL || libraries[0] == '\0')
return; /* nothing to do */
@@ -1166,6 +1167,11 @@
return;
}

+	if (IsUnderPostmaster && process_shared_preload_libraries_in_progress)
+		elevel = DEBUG2;
+	else
+		elevel = LOG;
+
 	foreach(l, elemlist)
 	{
 		char	   *tok = (char *) lfirst(l);
@@ -1185,7 +1191,7 @@
 			filename = expanded;
 		}
 		load_file(filename, restricted);
-		ereport(LOG,
+		ereport(elevel,
 				(errmsg("loaded library \"%s\"", filename)));
 		pfree(filename);
 	}

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: ITAGAKI Takahiro (#3)
Re: Many "loaded library" logs by preload libraries

ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> writes:

Tom Lane <tgl@sss.pgh.pa.us> wrote:

Yeah, I was noticing that myself while testing pg_stat_statements.
I agree that we should fix it to reduce the message level for reloads
occurring in child processes. I'd suggest using DEBUG2 if
(IsUnderPostmaster && process_shared_preload_libraries_in_progress).
I'm not so enthused about eliminating messaging for
local_preload_libraries, though.

Here is a patch to do it.

Applied, thanks.

regards, tom lane