Re: How to know killed by pg_terminate_backend - Mailing list pgsql-hackers

From Tatsuo Ishii
Subject Re: How to know killed by pg_terminate_backend
Date
Msg-id 20100515.220646.41634217.t-ishii@sraoss.co.jp
Whole thread Raw
In response to Re: How to know killed by pg_terminate_backend  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: How to know killed by pg_terminate_backend
Re: How to know killed by pg_terminate_backend
List pgsql-hackers
> >> Seems reasonable. Does the victim backend currently know why it has been
> >> killed?
> >
> > I don't think so.
> >
> > One idea is postmaster sets a flag in the shared memory area
> > indicating it rceived SIGTERM before forwarding the signal to
> > backends.
> >
> > Backend check the flag and if it's not set, it knows that the signal
> > has been sent by pg_terminate_backend(), not postmaster.
> 
> Or it could also be sent by some other user process, like the user
> running "kill" from the shell.

No problem (at least for pgpool-II).

If the flag is not set, postgres returns the same code as the one
killed by pg_terminate_backend(). The point is, backend is killed by
postmaster or not. Because if backend was killed by postmaster,
pgpool-II should not expect the PostgreSQL server is usable since
postmaster decided to shutdown.
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp


pgsql-hackers by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Re: Row-level Locks & SERIALIZABLE transactions, postgres vs. Oracle
Next
From: Simon Riggs
Date:
Subject: Re: HS/SR Assert server crash