Commit c4fd93b3 authored by Bruce Momjian's avatar Bruce Momjian

Re-enable pg_terminate_backend() using SIGTERM. SIGTERM testing still

needed.
parent c5e4e91a
<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.432 2008/04/15 20:28:46 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.433 2008/04/17 20:56:41 momjian Exp $ -->
<chapter id="functions"> <chapter id="functions">
<title>Functions and Operators</title> <title>Functions and Operators</title>
...@@ -11848,6 +11848,9 @@ SELECT set_config('log_statement_stats', 'off', false); ...@@ -11848,6 +11848,9 @@ SELECT set_config('log_statement_stats', 'off', false);
<indexterm> <indexterm>
<primary>pg_cancel_backend</primary> <primary>pg_cancel_backend</primary>
</indexterm> </indexterm>
<indexterm>
<primary>pg_terminate_backend</primary>
</indexterm>
<indexterm> <indexterm>
<primary>pg_reload_conf</primary> <primary>pg_reload_conf</primary>
</indexterm> </indexterm>
...@@ -11883,6 +11886,13 @@ SELECT set_config('log_statement_stats', 'off', false); ...@@ -11883,6 +11886,13 @@ SELECT set_config('log_statement_stats', 'off', false);
<entry><type>boolean</type></entry> <entry><type>boolean</type></entry>
<entry>Cancel a backend's current query</entry> <entry>Cancel a backend's current query</entry>
</row> </row>
<row>
<entry>
<literal><function>pg_terminate_backend</function>(<parameter>pid</parameter> <type>int</>)</literal>
</entry>
<entry><type>boolean</type></entry>
<entry>Terminate a backend</entry>
</row>
<row> <row>
<entry> <entry>
<literal><function>pg_reload_conf</function>()</literal> <literal><function>pg_reload_conf</function>()</literal>
...@@ -11907,9 +11917,10 @@ SELECT set_config('log_statement_stats', 'off', false); ...@@ -11907,9 +11917,10 @@ SELECT set_config('log_statement_stats', 'off', false);
</para> </para>
<para> <para>
<function>pg_cancel_backend</> sends a query cancel <function>pg_cancel_backend</> and <function>pg_terminate_backend</>
(<systemitem>SIGINT</>) signal to a backend process identified by send signals (<systemitem>SIGINT</> or <systemitem>SIGTERM</>
process ID. The process ID of an active backend can be found from respectively) to backend processes identified by process ID.
The process ID of an active backend can be found from
the <structfield>procpid</structfield> column in the the <structfield>procpid</structfield> column in the
<structname>pg_stat_activity</structname> view, or by listing the <structname>pg_stat_activity</structname> view, or by listing the
<command>postgres</command> processes on the server with <command>postgres</command> processes on the server with
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.413 2008/04/15 20:28:46 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.414 2008/04/17 20:56:41 momjian Exp $ -->
<chapter Id="runtime"> <chapter Id="runtime">
<title>Operating System Environment</title> <title>Operating System Environment</title>
...@@ -1372,6 +1372,14 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput ...@@ -1372,6 +1372,14 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput
well. well.
</para> </para>
</important> </important>
<para>
To terminate a session while allowing other sessions to continue, use
<function>pg_terminate_backend()</> (<xref
linkend="functions-admin-signal-table">) or send a
<systemitem>SIGTERM</> signal to the child process associated with
the session.
</para>
</sect1> </sect1>
<sect1 id="preventing-server-spoofing"> <sect1 id="preventing-server-spoofing">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/adt/misc.c,v 1.61 2008/04/15 20:28:46 momjian Exp $ * $PostgreSQL: pgsql/src/backend/utils/adt/misc.c,v 1.62 2008/04/17 20:56:41 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -128,6 +128,12 @@ pg_cancel_backend(PG_FUNCTION_ARGS) ...@@ -128,6 +128,12 @@ pg_cancel_backend(PG_FUNCTION_ARGS)
PG_RETURN_BOOL(pg_signal_backend(PG_GETARG_INT32(0), SIGINT)); PG_RETURN_BOOL(pg_signal_backend(PG_GETARG_INT32(0), SIGINT));
} }
Datum
pg_terminate_backend(PG_FUNCTION_ARGS)
{
PG_RETURN_BOOL(pg_signal_backend(PG_GETARG_INT32(0), SIGTERM));
}
Datum Datum
pg_reload_conf(PG_FUNCTION_ARGS) pg_reload_conf(PG_FUNCTION_ARGS)
{ {
...@@ -169,17 +175,6 @@ pg_rotate_logfile(PG_FUNCTION_ARGS) ...@@ -169,17 +175,6 @@ pg_rotate_logfile(PG_FUNCTION_ARGS)
PG_RETURN_BOOL(true); PG_RETURN_BOOL(true);
} }
#ifdef NOT_USED
/* Disabled in 8.0 due to reliability concerns; FIXME someday */
Datum
pg_terminate_backend(PG_FUNCTION_ARGS)
{
PG_RETURN_INT32(pg_signal_backend(PG_GETARG_INT32(0), SIGTERM));
}
#endif
/* Function to find out which databases make use of a tablespace */ /* Function to find out which databases make use of a tablespace */
typedef struct typedef struct
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.491 2008/04/15 20:28:46 momjian Exp $ * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.492 2008/04/17 20:56:41 momjian Exp $
* *
* NOTES * NOTES
* The script catalog/genbki.sh reads this file and generates .bki * The script catalog/genbki.sh reads this file and generates .bki
...@@ -3157,6 +3157,8 @@ DESCR("is schema another session's temp schema?"); ...@@ -3157,6 +3157,8 @@ DESCR("is schema another session's temp schema?");
DATA(insert OID = 2171 ( pg_cancel_backend PGNSP PGUID 12 1 0 f f t f v 1 16 "23" _null_ _null_ _null_ pg_cancel_backend - _null_ _null_ )); DATA(insert OID = 2171 ( pg_cancel_backend PGNSP PGUID 12 1 0 f f t f v 1 16 "23" _null_ _null_ _null_ pg_cancel_backend - _null_ _null_ ));
DESCR("cancel a server process' current query"); DESCR("cancel a server process' current query");
DATA(insert OID = 2096 ( pg_terminate_backend PGNSP PGUID 12 1 0 f f t f v 1 16 "23" _null_ _null_ _null_ pg_terminate_backend - _null_ _null_ ));
DESCR("terminate a server process");
DATA(insert OID = 2172 ( pg_start_backup PGNSP PGUID 12 1 0 f f t f v 1 25 "25" _null_ _null_ _null_ pg_start_backup - _null_ _null_ )); DATA(insert OID = 2172 ( pg_start_backup PGNSP PGUID 12 1 0 f f t f v 1 25 "25" _null_ _null_ _null_ pg_start_backup - _null_ _null_ ));
DESCR("prepare for taking an online backup"); DESCR("prepare for taking an online backup");
DATA(insert OID = 2173 ( pg_stop_backup PGNSP PGUID 12 1 0 f f t f v 0 25 "" _null_ _null_ _null_ pg_stop_backup - _null_ _null_ )); DATA(insert OID = 2173 ( pg_stop_backup PGNSP PGUID 12 1 0 f f t f v 0 25 "" _null_ _null_ _null_ pg_stop_backup - _null_ _null_ ));
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.314 2008/04/15 20:28:47 momjian Exp $ * $PostgreSQL: pgsql/src/include/utils/builtins.h,v 1.315 2008/04/17 20:56:41 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -416,6 +416,7 @@ extern Datum nonnullvalue(PG_FUNCTION_ARGS); ...@@ -416,6 +416,7 @@ extern Datum nonnullvalue(PG_FUNCTION_ARGS);
extern Datum current_database(PG_FUNCTION_ARGS); extern Datum current_database(PG_FUNCTION_ARGS);
extern Datum current_query(PG_FUNCTION_ARGS); extern Datum current_query(PG_FUNCTION_ARGS);
extern Datum pg_cancel_backend(PG_FUNCTION_ARGS); extern Datum pg_cancel_backend(PG_FUNCTION_ARGS);
extern Datum pg_terminate_backend(PG_FUNCTION_ARGS);
extern Datum pg_reload_conf(PG_FUNCTION_ARGS); extern Datum pg_reload_conf(PG_FUNCTION_ARGS);
extern Datum pg_tablespace_databases(PG_FUNCTION_ARGS); extern Datum pg_tablespace_databases(PG_FUNCTION_ARGS);
extern Datum pg_rotate_logfile(PG_FUNCTION_ARGS); extern Datum pg_rotate_logfile(PG_FUNCTION_ARGS);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment