Making Replication Robust
Bron Gondwana
brong at fastmail.fm
Fri Oct 12 21:42:20 EDT 2007
On Fri, Oct 12, 2007 at 10:29:53AM -0400, Carson Gaspar wrote:
> David Carter wrote:
>
>> I'm still a little bothered about signal handling and EINTR. I did some
>> experiments after our last chat about signals. In practice disk IO system
>> calls seem to be reasonably safe against EINTR on both Linux and Solaris,
>> but a trip to Google suggests that there are few guarantees:
>> http://archives.postgresql.org/pgsql-hackers/2005-12/msg01259.php
>> There seems to be a spilt of opinion between BSD and SVR4: BSD tries to
>> retry while SVR4 throws EINTR. Linux of course can work either way:
>> http://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html
>
> I suggest reading the POSIX specs. Restart vs. EINTR is specified
> explicitly on any POSIX platform (including all the *BSDs, Solaris, Linux,
> ...). If cyrus is still using signal() and friends anywhere, they
> desperately need to be replaced with sigaction().
Apart from a couple of short-lived command line utilities it looks like
the only use of signal() is a bunch of 'signal(SIGPIPE, SIG_IGN);'
scattered through just about everything.
Most of the "interesting" signal handling is done with sigaction
already.
Bron.
More information about the Cyrus-devel
mailing list