Re: [patch] helps fe-connect.c handle -EINTR more gracefully

From: Brent Verner <brent(at)rcfile(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: David Ford <david(at)blue-labs(dot)org>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [patch] helps fe-connect.c handle -EINTR more gracefully
Date: 2001-10-26 05:01:42
Message-ID: 20011026010142.A35990@rcfile.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 26 Oct 2001 at 00:05 (-0400), Tom Lane wrote:
| Brent Verner <brent(at)rcfile(dot)org> writes:
| > I'm not sure this is correct. I've tried to /make/ a SIGALRM cause
| > connect to errno==EINTR, but I can't cause this condition.
|
| It wouldn't surprise me in the least if this behavior is
| platform-dependent. It may well be that David's kernel will allow
| connect() to be interrupted by SIGALRM while yours won't. (Which
| reminds me that neither of you specified what platforms you were
| testing on. For shame.) Or maybe the difference depends on whether
| you are trying to connect to a local or remote server.

sorry, I tested the attached prog on linux(2.2/2.4) and freebsd(4.4R)
to both local and remote(slow) servers.

| Unless someone can point out a situation where retrying connect()
| after EINTR is actively bad, my inclination is to accept the patch.
| It seems like a net improvement in robustness to me, with no evident
| downside other than a line or two more code.

I've found numerous examples where connect() is retried after EINTR,
infact it appears to be fairly common.

cheers,
brent

--
"Develop your talent, man, and leave the world something. Records are
really gifts from people. To think that an artist would love you enough
to share his music with anyone is a beautiful thing." -- Duane Allman

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alessio Bragadini 2001-10-26 08:11:44 Re: storing binary data
Previous Message David Ford 2001-10-26 04:58:14 Re: [patch] helps fe-connect.c handle -EINTR more gracefully