Re: [HACKERS] Query cancel and OOB data

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: byronn(at)insightdist(dot)com (Byron Nikolaidis)
Cc: tgl(at)sss(dot)pgh(dot)pa(dot)us, hackers(at)postgreSQL(dot)org (PostgreSQL-development)
Subject: Re: [HACKERS] Query cancel and OOB data
Date: 1998-05-18 17:35:52
Message-ID: 199805181735.NAA22092@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> Bruce Momjian wrote:
>
> > OK, thanks to Tom Lane's many patches, I have query cancel working on my
> > machine. However, it is not working with Unix domain sockets. I get:
> >
> > Cannot send cancel request:
> > PQrequestCancel() -- couldn't send OOB data: errno=45
> > Operation not supported
> >
> > This is under BSDI 3.1.
> >
> > Do Unix Domain sockets support OOB(out-of-band) data?
> >
>
> Unix domain sockets don't support OOB (Stevens, Unix Network Programming).

Yea, I found that too, late last night, Section 6.14, page 332.

I basically need some way to 'signal' the backend of a cancellation
request. Polling the socket is not an option because it would impose
too great a performance penalty. Maybe async-io on a read(), but that
is not going to be very portable.

I could pass the backend pid to the front end, and send a kill(SIG_URG)
to that pid on a cancel, but the frontend can be running as a different
user than the backend. Problem is, the only communcation channel is
that unix domain socket.

We basically need some way to get the attention of the backend,
hopefully via some signal.

Any ideas?

--
Bruce Momjian | 830 Blythe Avenue
maillist(at)candle(dot)pha(dot)pa(dot)us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Gould 1998-05-18 17:59:29 Re: [HACKERS] Query cancel and OOB data
Previous Message Michal Mosiewicz 1998-05-18 16:35:47 Re: [HACKERS] Re: [PATCHES] char/varchar locale support