Making Replication Robust

Carson Gaspar carson at taltos.org
Fri Oct 12 10:29:53 EDT 2007


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().

-- 
Carson


More information about the Cyrus-devel mailing list