Re: Is this a bug in pg_current_logfile() on Windows?
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Thomas Kellerer <shammat@gmx.net>
Cc: pgsql-general@lists.postgresql.org
Date: 2020-07-08T16:41:36Z
Lists: pgsql-hackers, pgsql-general
Thomas Kellerer <shammat@gmx.net> writes: > I noticed the following strage output when running Postgres 12.3 (not psql) on Windows > postgres=# select pg_current_logfile(); > pg_current_logfile > ------------------------------------ > pg_log/postgresql-2020-07-08.log\r > (1 row) > Note the "\r" at the end of the file name. Yeah, that seems like a bug. I think the reason is that syslogger.c does this when writing the log metafile: fh = fopen(LOG_METAINFO_DATAFILE_TMP, "w"); ... #ifdef WIN32 /* use CRLF line endings on Windows */ _setmode(_fileno(fh), _O_TEXT); #endif while misc.c only does this when reading the file: fd = AllocateFile(LOG_METAINFO_DATAFILE, "r"); Somehow, the reading file is being left in binary mode and thus it's failing to convert \r\n back to plain \n. Now the weird thing about that is I'd have expected "r" and "w" modes to imply Windows text mode already, so that I'd have figured that _setmode call to be a useless no-op. Apparently on some Windows libc implementations, it's not. How was your installation built exactly? regards, tom lane
Commits
-
Tighten up Windows CRLF conversion in our TAP test scripts.
- d0390509a182 9.5.23 landed
- ce9d053423fd 9.6.19 landed
- a3cfb10764bb 12.4 landed
- 89162b7364bf 11.9 landed
- 4c17c5a8529c 10.14 landed
- 17b87b3049fa 13.0 landed
- 91bdf499b37b 14.0 landed
-
Fix pg_current_logfile() to not emit a carriage return on Windows.
- 90b418f81645 11.9 landed
- 765ad260a18f 10.14 landed
- 601d419b2b5d 13.0 landed
- 2564e2d08546 12.4 landed
- 183926da3162 14.0 landed
-
Further tighten Windows CRLF conversion in our TAP test scripts.
- ffb4cee43bdc 14.0 landed
-
Add test coverage for pg_current_logfile() function.
- 1c4e88e2fe41 14.0 landed
-
Fix failures to ignore \r when reading Windows-style newlines.
- b654714f9bcf 13.0 cited
-
Fix TAP infrastructure to support Mingw better
- 33f3bbc6d37d 10.0 cited