Annoying error messages in _dosmaperr
Hello,
I found that pg_resetxlog always prints the following message on Windows.
mapped win32 error code 2 to 2
Can we supress this annoying message? It seems to come from _dosmaperr,
but the error "postmaster.pid is not found" is a *normal* situation
in pg_resetxlog.
-> open("%s/postmaster.pid", O_RDONLY, 0)
-> pgwin32_open()
-> _dosmaperr()
#ifndef FRONTEND
ereport(DEBUG5, ...);
#else
fprintf(stderr, _("mapped win32 error code %lu to %d"), e, errno);
#endif
DEBUG5 means the messages are completely non-critical. Therefore, client
programs also don't need to report them, no? If possible, I'd like to
remove the #else block (or all of them) from the above routine.
(On the other hand, "unrecognized win32 error code" part should be there.)
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center
ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> writes:
Can we supress this annoying message? It seems to come from _dosmaperr,
but the error "postmaster.pid is not found" is a *normal* situation
in pg_resetxlog.
-> open("%s/postmaster.pid", O_RDONLY, 0)
-> pgwin32_open()
-> _dosmaperr()
#ifndef FRONTEND
ereport(DEBUG5, ...);
#else
fprintf(stderr, _("mapped win32 error code %lu to %d"), e, errno);
#endif
DEBUG5 means the messages are completely non-critical. Therefore, client
programs also don't need to report them, no? If possible, I'd like to
remove the #else block (or all of them) from the above routine.
I suppose ideally we'd have some sort of debug-output switch on the
client side and code the #else branch like this
if (debug >= 5)
fprintf(stderr, ...);
It's probably not worth the trouble to do that, but maybe we could just
have a FRONTEND_DEBUG compile time switch:
#ifndef FRONTEND
ereport(DEBUG5, ...);
#elif FRONTEND_DEBUG
fprintf(stderr, _("mapped win32 error code %lu to %d"), e, errno);
#endif
That would at least leave the code in place if anyone needed the
debugging output badly enough to do a custom build.
regards, tom lane
Tom Lane <tgl@sss.pgh.pa.us> wrote:
It's probably not worth the trouble to do that, but maybe we could just
have a FRONTEND_DEBUG compile time switch:
That would at least leave the code in place if anyone needed the
debugging output badly enough to do a custom build.
It would be a simplest solution.
I grep-ed sources with #ifndef FRONTEND and #ifdef FRONTEND,
but there are no other "DEBUG or stderr" codes. All other codes
are "WARNING/LOG or stderr", so I keep all of them as-is.
Index: src/port/win32error.c
===================================================================
--- src/port/win32error.c (HEAD)
+++ src/port/win32error.c (working copy)
@@ -180,7 +180,7 @@
ereport(DEBUG5,
(errmsg_internal("mapped win32 error code %lu to %d",
e, errno)));
-#else
+#elif FRONTEND_DEBUG
fprintf(stderr, _("mapped win32 error code %lu to %d"), e, errno);
#endif
return;
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center
ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> writes:
I grep-ed sources with #ifndef FRONTEND and #ifdef FRONTEND,
but there are no other "DEBUG or stderr" codes. All other codes
are "WARNING/LOG or stderr", so I keep all of them as-is.
Looks good, applied.
regards, tom lane