David Parker dparker
Fri Oct 22 20:32:51 PDT 2004
I have to be able to do a slonik uninstall from a Java program. I am generating a temp file and running that. I do this with other slonik commands without a problem (failover, move set), but this one hangs. Strangely, if I execute the same temp file from the command line, it will execute fine. When I look at pg_stat_activity and pg_locks while the process is hung, I don't see anywhere that another process is blocking it.

I turned on postmaster debugging, and for a successful execution I get:

[...]
NOTICE:  drop cascades to type _tzreplic.xxid
NOTICE:  drop cascades to cast from _tzreplic.xxid to xid
NOTICE:  drop cascades to cast from xid to _tzreplic.xxid
NOTICE:  drop cascades to function _tzreplic.xxidout(_tzreplic.xxid)
NOTICE:  drop cascades to function _tzreplic.xxidin(cstring)
DEBUG:  CommitTransactionCommand
DEBUG:  StartTransactionCommand
LOG:  statement: commit transaction;
DEBUG:  parse tree:
DETAIL:  {QUERY :commandType 5 :querySource 0 :canSetTag true :utilityStmt ?
        :resultRelation 0 :into <> :hasAggs false :hasSubLinks false :rtable <>
        :jointree <> :rowMarks () :targetList <> :groupClause <> :havingQual <>
        :distinctClause <> :sortClause <> :limitOffset <> :limitCount <>
        :setOperations <> :resultRelations ()}
        
DEBUG:  ProcessUtility
DEBUG:  CommitTransactionCommand
DEBUG:  proc_exit(0)
[...]

While for the execution that hangs, the log stops at:

[...]
NOTICE:  drop cascades to operator =(_tzreplic.xxid,_tzreplic.xxid)
NOTICE:  drop cascades to type _tzreplic.xxid[]
NOTICE:  drop cascades to type _tzreplic.xxid
NOTICE:  drop cascades to cast from _tzreplic.xxid to xid
NOTICE:  drop cascades to cast from xid to _tzreplic.xxid
NOTICE:  drop cascades to function _tzreplic.xxidout(_tzreplic.xxid)
NOTICE:  drop cascades to function _tzreplic.xxidin(cstring)
DEBUG:  CommitTransactionCommand

Has anybody seen this kind of behavior? Are there system objects I should be looking at other than pg_stat_activity and pg_locks?

This is the slonik script:

#!/bin/sh
exec slonik << _EOF_
CLUSTER NAME = replic;
NODE 1 ADMIN CONNINFO = 'dbname=test port=24005';
UNINSTALL NODE (ID=1);
_EOF_

Thanks. Any suggestions would be greatly appreciated.

- DAP
----------------------------------------------------------------------------------
David Parker    Tazz Networks    (401) 709-5130
?


More information about the Slony1-general mailing list