Thread: function for testing that causes the backend to terminate
For testing unusual situations I'd like to be able to cause a backend to terminate due to something like a segfault. Do we currently have this in testing ?
Dave Cramer
On Thu, Apr 29, 2021 at 4:27 PM Dave Cramer <davecramer@gmail.com> wrote: > For testing unusual situations I'd like to be able to cause a backend to terminate due to something like a segfault. Dowe currently have this in testing ? Well, you could use pg_terminate_backend which sends SIGTERM to the backend. However, we don't have a function that sends SIGSEGV yet, you could signal the backend with SIGSEGV directly, if possible. With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com
On 4/29/21 6:56 AM, Dave Cramer wrote: > For testing unusual situations I'd like to be able to cause a backend to > terminate due to something like a segfault. Do we currently have this in > testing ? If you can run SQL as a superuser from that backend, try: COPY (SELECT pg_backend_pid()) TO PROGRAM 'xargs kill -SIGSEGV'; HTH, Joe -- Crunchy Data - http://crunchydata.com PostgreSQL Support for Secure Enterprises Consulting, Training, & Open Source Development
On Thu, Apr 29, 2021 at 4:36 PM Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote: > > On Thu, Apr 29, 2021 at 4:27 PM Dave Cramer <davecramer@gmail.com> wrote: > > For testing unusual situations I'd like to be able to cause a backend to terminate due to something like a segfault.Do we currently have this in testing ? > > Well, you could use pg_terminate_backend which sends SIGTERM to the > backend. However, we don't have a function that sends SIGSEGV yet, you > could signal the backend with SIGSEGV directly, if possible. And, I came across an extension called pg_crash [1], see if that helps. [1] https://www.cybertec-postgresql.com/en/pg_crash-crashing-postgresql-automatically/ With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com
On 4/29/21 4:16 PM, Joe Conway wrote: > On 4/29/21 6:56 AM, Dave Cramer wrote: >> For testing unusual situations I'd like to be able to cause a backend >> to terminate due to something like a segfault. Do we currently have >> this in testing ? > > If you can run SQL as a superuser from that backend, try: > > COPY (SELECT pg_backend_pid()) > TO PROGRAM 'xargs kill -SIGSEGV'; > > HTH, > > Joe > or a plperlu function that does 'kill 11, $$;' should do it. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
Joe,
Thanks,
This works and I don't have to install anything!
Dave Cramer
On Thu, 29 Apr 2021 at 16:16, Joe Conway <mail@joeconway.com> wrote:
On 4/29/21 6:56 AM, Dave Cramer wrote:
> For testing unusual situations I'd like to be able to cause a backend to
> terminate due to something like a segfault. Do we currently have this in
> testing ?
If you can run SQL as a superuser from that backend, try:
COPY (SELECT pg_backend_pid())
TO PROGRAM 'xargs kill -SIGSEGV';
HTH,
Joe
--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development