Re: Fwd: race in pg_ctl start -w - Mailing list pgsql-bugs

From Heikki Linnakangas
Subject Re: Fwd: race in pg_ctl start -w
Date
Msg-id 507BC402.40807@vmware.com
Whole thread Raw
In response to Re: Fwd: race in pg_ctl start -w  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Fwd: race in pg_ctl start -w  (Dave Vitek <dvitek@grammatech.com>)
List pgsql-bugs
On 11.10.2012 22:36, Tom Lane wrote:
> Heikki Linnakangas<hlinnakangas@vmware.com>  writes:
>> Hmm, starting with 9.3, postmaster can not only create and append to the
>> end of file, it can also inject a line in the middle, shifting the
>> following lines forwards. In theory, if a new line is injected into the
>> middle of the file between fgets() calls, readfile() could read part of
>> the same line twice. Not sure what consequences that could have; pg_ctl
>> might try to connect to wrong address or socket directory.
>
> Hm.  IIRC, the postmaster is careful to write the whole thing in a
> single write() call, which in principle is atomic.  Perhaps you're
> right that we'd better have pg_ctl read it in a single read() to
> ensure that it sees a consistent file state.  Otherwise we're making
> assumptions about what sort of buffering underlies the stdio functions.

Ok, changed it to slurp the whole file to memory with one read() call.

Dave, did this silence the static analysis tool you used?

- Heikki

pgsql-bugs by date:

Previous
From: Craig Ringer
Date:
Subject: Re: BUG #7595: terminate process in an unusual way
Next
From: John Nash
Date:
Subject: WebSphere Application Server support for postgres