Chris Browne cbbrowne at lists.slony.info
Wed Feb 28 14:09:22 PST 2007
Update of /home/cvsd/slony1/slony1-engine/src/slon
In directory main:/tmp/cvs-serv3863/src/slon

Modified Files:
	remote_worker.c 
Log Message:
- When you run MOVE SET, this populates sl_setsync for the moved set
  even on nodes that are not subscribed.  If, subsequent to doing this, 
  you attempt a SUBSCRIBE SET for a formerly-unsubscribed node, the
  subscription will fail right at the end when the slon tries to insert a
  new value to sl_setsync.

  The fix: DELETE from sl_setsync immediately before the INSERT.  This
  will silently blow away any 'offending' sl_setsync row.

As observed by Afilias staff...


Index: remote_worker.c
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/src/slon/remote_worker.c,v
retrieving revision 1.133
retrieving revision 1.134
diff -C2 -d -r1.133 -r1.134
*** remote_worker.c	6 Feb 2007 21:03:11 -0000	1.133
--- remote_worker.c	28 Feb 2007 22:09:20 -0000	1.134
***************
*** 3862,3872 ****
  	 */
  	slon_mkquery(&query1,
! 				 "insert into %s.sl_setsync "
! 				 "    (ssy_setid, ssy_origin, ssy_seqno, "
! 				 "     ssy_minxid, ssy_maxxid, ssy_xip, ssy_action_list) "
! 				 "    values ('%d', '%d', '%s', '%s', '%s', '%q', '%q'); ",
! 				 rtcfg_namespace,
! 			 set_id, node->no_id, ssy_seqno, ssy_minxid, ssy_maxxid, ssy_xip,
! 				 dstring_data(&ssy_action_list));
  	PQclear(res1);
  	dstring_free(&ssy_action_list);
--- 3862,3874 ----
  	 */
  	slon_mkquery(&query1,
! 		     "delete from %s.sl_setsync where ssy_setid = %d;"
! 		     "insert into %s.sl_setsync "
! 		     "    (ssy_setid, ssy_origin, ssy_seqno, "
! 		     "     ssy_minxid, ssy_maxxid, ssy_xip, ssy_action_list) "
! 		     "    values ('%d', '%d', '%s', '%s', '%s', '%q', '%q'); ",
! 		     rtcfg_namespace, set_id,
! 		     rtcfg_namespace,
! 		     set_id, node->no_id, ssy_seqno, ssy_minxid, ssy_maxxid, ssy_xip,
! 		     dstring_data(&ssy_action_list));
  	PQclear(res1);
  	dstring_free(&ssy_action_list);



More information about the Slony1-commit mailing list