Re: BUG #12833: Cannot cancel query or terminate backend if it client is SIGSTOPed

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: eshkinkot(at)gmail(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #12833: Cannot cancel query or terminate backend if it client is SIGSTOPed
Date: 2015-03-05 17:33:22
Message-ID: 26913.1425576802@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

eshkinkot(at)gmail(dot)com writes:
> I run this command in bash:
> $ ../bin/psql -X -At -c 'copy (select * from generate_series(1, 100000000))
> to stdout' & ( sleep 2; kill -STOP $!; )

> $ ps f --ppid $$
> PID TTY STAT TIME COMMAND
> 24773 pts/23 R+ 0:00 ps f --ppid 5021
> 24685 pts/23 T 0:00 ../bin/psql -X -At -c copy (select * from
> generate_series(1, 100000000)) to stdout

> Now psql is stopped and I try to cancel it backend with
> pg_cancel_backend and pg_terminate_backend, but it not canceled or stopped.

[ shrug... ] It'll probably terminate the query whenever the kernel
returns from send(). There aren't a lot of options here: the only
way we could get out of this without waiting for the client is a
catastrophic termination of the session, which is not really what
either of those operations authorizes. There's no way to do anything
less drastic without breaking protocol sync.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Andres Freund 2015-03-05 17:36:42 Re: BUG #12833: Cannot cancel query or terminate backend if it client is SIGSTOPed
Previous Message eshkinkot 2015-03-05 16:37:08 BUG #12833: Cannot cancel query or terminate backend if it client is SIGSTOPed