Re: Statement.cancel() may cancel queries in the future

Поиск
Список
Период
Сортировка
От Oliver Jowett
Тема Re: Statement.cancel() may cancel queries in the future
Дата
Msg-id 20030915220743.GA11008@opencloud.com
обсуждение исходный текст
Ответ на Re: Statement.cancel() may cancel queries in the future  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Statement.cancel() may cancel queries in the future
Список pgsql-jdbc
On Mon, Sep 15, 2003 at 12:01:47PM -0400, Tom Lane wrote:
> Oliver Jowett <oliver@opencloud.com> writes:
> > We want to block thread 1 at the point marked (*) until we know the cancel
> > has been processed and it is safe to send another query. However, looking at
> > the backend code query-cancel is implemented by B sending a signal to A, and
> > if A is not executing a query the signal is silently eaten. So I'm not sure
> > how to eliminate this race as we have no way of working out when the signal
> > has arrived in the above case.
>
> When JDBC issues a cancel request, does it simply fire off a few bytes
> and close the connection?

Indeed it does.

>  You could make things a lot closer to
> synchronous if you wait for the postmaster to drop the connection,
> instead.  That would guarantee that the postmaster has completed
> executing kill().  I suppose actual delivery of the signal to the
> backend might not have happened yet, but it's hard to believe that
> it could be postponed past the backend's next successful execution of
> recv().

That sounds reasonable. I'll put together a patch to do that.

Thanks.

-O

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Kris Jurka
Дата:
Сообщение: Re: Bug #814
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Statement.cancel() may cancel queries in the future