Re: pipe chunking vs Windows
От | Magnus Hagander |
---|---|
Тема | Re: pipe chunking vs Windows |
Дата | |
Msg-id | 20070730075704.GC24715@svr2.hagander.net обсуждение исходный текст |
Ответ на | Re: pipe chunking vs Windows (Andrew Dunstan <andrew@dunslane.net>) |
Ответы |
Re: pipe chunking vs Windows
|
Список | pgsql-hackers |
On Sun, Jul 29, 2007 at 07:43:34PM -0400, Andrew Dunstan wrote: > > > 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. Seems right - for anything EXEC_BACKEND, if you change a state from the default it won't be inherited, so you nede to explicitly add it in the child. > 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. Can't we add back the CRLF combo when writing the file out from the syslogger process? //Magnus
В списке pgsql-hackers по дате отправления: