elein elein
Sat Aug 27 03:29:35 PDT 2005
Chris Browne has been helpful but busy.
Can someone else try to look into this problem.

It seems to be a basic failure on failover when
there are cascaded replicas.  You are left unable
to add back in the failed node.

> >Slony 1.1.  Three nodes. 10 set(1) => 20 => 30.
> >
> >I ran failover from node10 to node20.
> >
> >On node30, the origin of the set was changed
> >from 10 to 20, however, drop node10 failed
> >because of the row in sl_setsync.
> >
> >Which in turn prevents putting
> >node10 back into the mix.
> >
> >Please tell me I'm not the first one to run into
> >this...
> >

   * failover 10 to 20
   * bounce slons
   * drop node 10   <---chokes on FK Constraint on Node30
       "begin transaction; set transaction isolation level serializable; lock table "_gb_cluster".sl_config_lock; select "_gb_cluster".dropNode_int(10); notify "_gb_cluster_Restart"; notify "_gb_cluster_Event"; notify "_gb_cluster_Confirm"; insert into "_gb_cluster".sl_event     (ev_origin, ev_seqno, ev_timestamp,      ev_minxid, ev_maxxid, ev_xip, ev_type , ev_data1    ) values ('20', '84', '2005-08-26 19:03:34.92452', '3577884', '3577885', '', 'DROP_NODE', '10'); insert into "_gb_cluster".sl_confirm  (con_origin, con_received, con_seqno, con_timestamp)    values (20, 30, '84', CURRENT_TIMESTAMP); commit transaction;" PGRES_FATAL_ERROR ERROR:  update or delete on "sl_node" violates foreign key constraint "ssy_origin-no_id-ref" on "sl_setsync"DETAIL:  Key (no_id)=(10) is still referenced from table "sl_setsync".
      CONTEXT:  SQL statement "delete from "_gb_cluster".sl_node where no_id =  $1 "
PL/pgSQL function "dropnode_int" line 29 at SQL statement


   I have the repro. I have the dumps of the dbs.  I have the log files.

   I've looked at the code and in failoverSet_int it seems
   to do the right thing for sl_setsync.  But I think that
   this was never called or sent to Node30 because
   it was not a direct subscriber.    I'm not familiar enough with the
	higher level calling mechanism to know where this should be called
   and isn't.  

``elein

On Tue, Aug 23, 2005 at 11:40:45AM -0400, Christopher Browne wrote:
> elein wrote:
> 
> >This is what is in some of the tables for node20:
> >
> >gb2=# select * from sl_node;
> > no_id | no_active |       no_comment        | no_spool
> >-------+-----------+-------------------------+----------
> >    20 | t         | Node 20 - gb2 at localhost | f
> >    30 | t         | Node 30 - gb3 at localhost | f
> >(2 rows)
> >
> >gb2=# select * from sl_set;
> > set_id | set_origin | set_locked |     set_comment
> >--------+------------+------------+----------------------
> >      1 |         20 |            | Set 1 for gb_cluster
> >gb2=# select * from sl_setsync;
> > ssy_setid | ssy_origin | ssy_seqno | ssy_minxid | ssy_maxxid | ssy_xip | ssy_action_list
> >-----------+------------+-----------+------------+------------+---------+-----------------
> >(0 rows)
> >
> >This is what I have for node30:
> >
> >gb3=# select * from sl_node;
> > no_id | no_active |       no_comment        | no_spool
> >-------+-----------+-------------------------+----------
> >    10 | t         | Node 10 - gb at localhost  | f
> >    20 | t         | Node 20 - gb2 at localhost | f
> >    30 | t         | Node 30 - gb3 at localhost | f
> >(3 rows)
> >
> >gb3=# select * from sl_set;
> > set_id | set_origin | set_locked |     set_comment
> >--------+------------+------------+----------------------
> >      1 |         20 |            | Set 1 for gb_cluster
> >(1 row)
> >
> >gb3=# select * from sl_setsync;
> > ssy_setid | ssy_origin | ssy_seqno | ssy_minxid | ssy_maxxid | ssy_xip | ssy_action_list
> >-----------+------------+-----------+------------+------------+---------+-----------------
> >         1 |         10 |       235 | 1290260    | 1290261    |         |
> >(1 row)
> >
> >frustrated,
> >--elein
> >_______________________________________________
> >Slony1-general mailing list
> >Slony1-general at gborg.postgresql.org
> >http://gborg.postgresql.org/mailman/listinfo/slony1-general
> >  
> >


More information about the Slony1-general mailing list