diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 5679d5b9c1a98966e52459abb5cf5bbfc34c2601..e7bc046d87007d40431d262a9a0e80aa6edac12f 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -1668,10 +1668,14 @@ write_console(const char *line, int len) /* * WriteConsoleW() will fail of stdout is redirected, so just fall through * to writing unconverted to the logfile in this case. + * + * Since we palloc the structure required for conversion, also fall through + * to writing unconverted if we have not yet set up CurrentMemoryContext. */ if (GetDatabaseEncoding() != GetPlatformEncoding() && !in_error_recursion_trouble() && - !redirection_done) + !redirection_done && + CurrentMemoryContext != NULL) { WCHAR *utf16; int utf16len;