From: Warren W. Gay VE3WWG <ve3wwg@cogeco.ca>
To: PostgreSQL mailing list <pgsql-interfaces@postgresql.org>
Subject: libpq bug handling signals
Date: Sat, 17 Aug 2002 00:39:53 -0400
Message-ID: <3D5DD399.7090200@cogeco.ca> (raw)
I am experiencing problems with lo_write() (mostly), WRT to
life after a signal has been handled.
Socket I/O (read(2) for example) will return -1 and have errno = EINTR
if it was blocked reading, and a signal was handled successfully while
it was blocked. It appears that lo_write() should do something similar,
but doesn't in practice ...
If I clear errno=0 and then perform lo_write()s during which
time a signal is received and handled, lo_write() will return -1
indicating an error. However, upon checking the
errno vallue, it indicates that no error has occurred (errno=0).
However, if I set errno=EINTR prior to calling lo_write() each
time, the same -1 is returned (after a signal) but now the
errno = EINTR (as I had originally expected it should have been).
It appears that EINTR processing is not correct or is incomplete in
the libpq code. I have experienced similar weirdness in the
operation of lo_lseek().
Do I need to subsequently submit this as a bug somewhere?
Thanks, Warren.
--
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: ve3wwg@cogeco.ca
Subject: Re: libpq bug handling signals
In-Reply-To: <3D5DD399.7090200@cogeco.ca>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox