| 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: | Whole Thread | Raw Message | 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
| 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 |