pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
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





view thread (2+ messages)  latest in thread

Message-ID: <3D5DD399.7090200@cogeco.ca>
Permalink:  ../3D5DD399.7090200@cogeco.ca/
Also on:    postgresql.org/message-id/3D5DD399.7090200@cogeco.ca

 · 

reply

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