Andreas Pflug wrote:
Andrew Dunstan wrote:
I have no idea why that's done - it goes back to the origins of the
syslogger - probably because someone mistakenly thinks all WIndows
text files have to have CRLF line endings.

I tried changing that to _O_BINARY, and calling _setmode on both the
pipe before it's duped into stderr and stderr after the dup and both.
Nothing seemed to work.
AFAIR the flag has to be set again in each child process.

OK, this was the bit of info I was missing. I put a call in SubPostmasterMain() like this:

   _setmode(fileno(stderr), _O_BINARY);

and one in the syslogger code the same, just after the pipe is dup'ed into stderr.

After that I saw no more corruption issues.

However, the problem is that in backporting it we'd make a slight behaviour change - the log file just gets LF instead of CRLF line endings. I'm inclined to say that's a better result than living with the bug, though.




---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to