Re: pipe chunking vs Windows

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Andreas Pflug <pgadmin(at)pse-consulting(dot)de>
Cc: "korry(dot)douglas" <korry(dot)douglas(at)enterprisedb(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pipe chunking vs Windows
Date: 2007-07-29 23:43:34
Message-ID: 46AD2626.4080302@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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.

Thoughts?

cheers

andrew

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Hagander 2007-07-30 07:50:27 Re: pipe chunking vs Windows
Previous Message Alvaro Herrera 2007-07-29 23:17:15 Re: allow CSV quote in NULL