Wed Nov 9 23:53:21 PST 2005
- Previous message: [Slony1-commit] By wieck: Change the signal argument of killBackend() to type text and
- Next message: [Slony1-commit] By cbbrowne: Change test bed to allow configuring, for each DB instance,
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Log Message: ----------- Change the signal argument of killBackend() to type text and allow only NULL (0 signal to test if process alive) and TERM. Jan Tags: ---- REL_1_1_STABLE Modified Files: -------------- slony1-engine/src/backend: slony1_funcs.c (r1.33.2.2 -> r1.33.2.3) slony1_funcs.sql (r1.64.2.11 -> r1.64.2.12) -------------- next part -------------- Index: slony1_funcs.sql =================================================================== RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/backend/slony1_funcs.sql,v retrieving revision 1.64.2.11 retrieving revision 1.64.2.12 diff -Lsrc/backend/slony1_funcs.sql -Lsrc/backend/slony1_funcs.sql -u -w -r1.64.2.11 -r1.64.2.12 --- src/backend/slony1_funcs.sql +++ src/backend/slony1_funcs.sql @@ -247,7 +247,7 @@ nl_backendpid from @NAMESPACE at .sl_nodelock where nl_nodeid = p_failed_node for update loop - perform @NAMESPACE at .killBackend(v_row.nl_backendpid, 15); + perform @NAMESPACE at .killBackend(v_row.nl_backendpid, ''TERM''); delete from @NAMESPACE at .sl_nodelock where nl_nodeid = v_row.nl_nodeid and nl_conncnt = v_row.nl_conncnt; @@ -261,15 +261,15 @@ 'terminates all backends that have registered to be from the given node'; -- ---------------------------------------------------------------------- --- FUNCTION killBackend (pid, signo) +-- FUNCTION killBackend (pid, signame) -- -- -- ---------------------------------------------------------------------- -create or replace function @NAMESPACE at .killBackend (int4, int4) returns int4 +create or replace function @NAMESPACE at .killBackend (int4, text) returns int4 as '$libdir/slony1_funcs', '_Slony_I_killBackend' language C; -comment on function @NAMESPACE at .killBackend(int4, int4) is +comment on function @NAMESPACE at .killBackend(int4, text) is 'Send a signal to a postgres process. Requires superuser rights'; -- ---------------------------------------------------------------------- @@ -465,7 +465,7 @@ from @NAMESPACE at .sl_nodelock for update loop - if @NAMESPACE at .killBackend(v_row.nl_backendpid, 0) < 0 then + if @NAMESPACE at .killBackend(v_row.nl_backendpid, ''NULL'') < 0 then raise notice ''Slony-I: cleanup stale sl_nodelock entry for pid=%'', v_row.nl_backendpid; delete from @NAMESPACE at .sl_nodelock where Index: slony1_funcs.c =================================================================== RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/backend/slony1_funcs.c,v retrieving revision 1.33.2.2 retrieving revision 1.33.2.3 diff -Lsrc/backend/slony1_funcs.c -Lsrc/backend/slony1_funcs.c -u -w -r1.33.2.2 -r1.33.2.3 --- src/backend/slony1_funcs.c +++ src/backend/slony1_funcs.c @@ -1002,12 +1002,28 @@ { int32 pid; int32 signo; + text *signame; if (!superuser()) elog(ERROR, "Slony-I: insufficient privilege for killBackend"); pid = PG_GETARG_INT32(0); - signo = PG_GETARG_INT32(1); + signame = PG_GETARG_TEXT_P(1); + + if (VARSIZE(signame) == VARHDRSZ + 4 && + memcmp(VARDATA(signame), "NULL", 0) == 0) + { + signo = 0; + } + else if (VARSIZE(signame) == VARHDRSZ + 4 && + memcmp(VARDATA(signame), "TERM", 0) == 0) + { + signo = SIGTERM; + } + else + { + elog(ERROR, "Slony-I: unsupported signal"); + } if (kill(pid, signo) < 0) PG_RETURN_INT32(-1);
- Previous message: [Slony1-commit] By wieck: Change the signal argument of killBackend() to type text and
- Next message: [Slony1-commit] By cbbrowne: Change test bed to allow configuring, for each DB instance,
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list