| From: | David Ford <david+cert(at)blue-labs(dot)org> |
|---|---|
| To: | pgsql-patches(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org |
| Subject: | [patch] fe-connect.c doesn't handle EINTR correctly |
| Date: | 2002-03-16 05:44:25 |
| Message-ID: | 3C92DBB9.8050902@blue-labs.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers pgsql-patches |
Last year we had a drawn out discussion about this and I created a patch
for it. I never noticed that the patch didn't go in until I installed
7.2 the other day and realised that fe-connect.c never was fixed.
Here is the patch again. It is against CVS 3/16/2002. This time I only
rewrote the connect procedure at line 912, I leave it up to the regular
hackers to copy it's functionality to the SSL procedure just below it.
In summary, if a software writer implements timer events or other events
which generate a signal with a timing fast enough to occur while libpq
is inside connect(), then connect returns -EINTR. The code following
the connect call does not handle this and generates an error message.
The sum result is that the pg_connect() fails. If the timer or other
event is right on the window of the connect() completion time, the
pg_connect() may appear to work sporadically. If the event is too slow,
pg_connect() will appear to always work and if the event is too fast,
pg_connect() will always fail.
David
| Attachment | Content-Type | Size |
|---|---|---|
| fe-connect.c-EINTR.diff | text/plain | 2.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Vadim Mikheev | 2002-03-16 06:04:09 | Re: [BUGS] Bug #613: Sequence values fall back to previously chec |
| Previous Message | Greg Copeland | 2002-03-16 04:35:27 | Re: User Level Lock question |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Christopher Kings-Lynne | 2002-03-17 08:28:15 | Add regression tests for ADD PRIMARY KEY |
| Previous Message | Alvaro Herrera | 2002-03-16 01:59:32 | docbook.m4 |