Thread: function for testing that causes the backend to terminate

function for testing that causes the backend to terminate

From
Dave Cramer
Date:
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

Re: function for testing that causes the backend to terminate

From
Bharath Rupireddy
Date:
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



Re: function for testing that causes the backend to terminate

From
Joe Conway
Date:
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



Re: function for testing that causes the backend to terminate

From
Bharath Rupireddy
Date:
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



Re: function for testing that causes the backend to terminate

From
Andrew Dunstan
Date:
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




Re: function for testing that causes the backend to terminate

From
Dave Cramer
Date:
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