Skip site navigation (1) Skip section navigation (2)

libpq bug handling signals

From: "Warren W(dot) Gay VE3WWG" <ve3wwg(at)cogeco(dot)ca>
To: PostgreSQL mailing list <pgsql-interfaces(at)postgresql(dot)org>
Subject: libpq bug handling signals
Date: 2002-08-17 04:39:53
Message-ID: 3D5DD399.7090200@cogeco.ca (view raw or flat)
Thread:
Lists: pgsql-interfaces
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



Responses

pgsql-interfaces by date

Next:From: Warren W. Gay VE3WWGDate: 2002-08-17 04:46:13
Subject: Re: determining if there's a transaction in progress
Previous:From: Steve HoweDate: 2002-08-16 18:11:03
Subject: Re: determining if there's a transaction in progress

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group