Wed Oct 17 06:53:11 PDT 2012
- Previous message: [Slony1-hackers] Failover never completes
- Next message: [Slony1-hackers] Failover never completes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 12-10-16 12:56 PM, Joe Conway wrote: > On 10/16/2012 05:50 AM, Steve Singer wrote: > > No, as I understand it from > http://slony.info/documentation/slonyupgrade.html > we would need to: > > 1) Stop the slon processes on all nodes. (e.g. - old > version of slon) > 2) Install the new version of slon software on all > nodes. > 3) Execute a slonik script containing the command > update functions (id = [whatever]); for each node > in the cluster. > > We are trying to avoid #1, and in any case cannot easily do #2 (no > upgrade in place). Yes that is the only way you can upgrade. > > At the moment we are testing with clusters that are all running 2.1.0. > It is in this configuration where failover is failing. > > We *attempted* to run a mixed 2.1.0/2.1.2 cluster so that we could > failover to the new version, but slon refused to start up in a mixed > cluster. > > We could possibly test a cluster with all 2.1.2, which might be > instructive, especially if it turns out that the problem we are running > into is solved in 2.1.2. However we would still have the challenge of > getting from existing 2.1.0 clusters to 2.1.2 clusters without excessive > downtime. > Yes this will be a challenge. The upgrade from 2.1.0 to 2.1.x is also a lot easier than say the upgrade from 2.1.x to 2.2.x. I don't have a good solution for you if you can't shutdown the slons and do an inplace UPDATE FUNCTIONS. This shouldn't necessarily require you to shutdown your application, but everyones application environment is different. >>> Is bug 260 issue #2 deterministic or a race condition? Our current >>> process works 9 out of 10 times... >> >> My recollection was that #260 usually tended to happen, but there are a >> lot of other rare race conditions I had occasionally hit which lead to >> the failover changes in 2.2 >> >> Does your sl_listen table have any cycles in it, ie >> a-->b >> b--->a >> (or even cycles through a third node) > > I assume you mean provider->receiver? If so, tons of cycles: > A->C > C->A > I mean origin, provider, receiver cycles like 1, 2,3 1, 3,2 2,2,3 3,3,2 is normal and isn't a cycle becaues they deal with the source for different event origins. > > I am not seeing any events in the slony tables now except SYNC events -- > does that mean slon has cleaned out the ones from yesterday when I ran > into this? > There is a race condition that I occasionally have seen in testing where the nodes that you are 'simulating' the FAILOVER of generates say SYNC 1,1234 but when slonik runs this SYNC isn't YET visible on any of the other nodes. It is possible that after slonik picks the most ahead node and generates the 'fake' FAILOVER 1,1234 on another node (say node 2). the real 1,1234 might show up in sl_event on a third node. The nodes will think the failover event has been processed by other nodes where they didn't process the FAILOVER event but instead processed a SYNC event with the same number. My best advice to mitigate this is to shutdown the slon on the node you are simulating the failover of and then wait a bit to make sure any 'in flight' nodes get processed. I tried to address this in a better in 2.2 > > Node D (slave2) has processed the failover and shows node C (new master) > as the set origin. It also seems to have correct/expected rows in the > other tables (based on comparison with a run that was successful). > > Node B (slave1) shows node A (original master) as the set origin. > However sl_subscribe is correct (provider is C, B and D as the > receivers, no extra rows), sl_path looks correct, sl_node looks correct. > > Node C (new master) shows node A (original master) as the set origin. > sl_subscribe has two correct rows (provider is C, B and D as the > receivers) and one extra row (provider B, subscriber C, active false). > sl_path looks correct, sl_node looks correct. > > Node A (orig master) shows node A (original master) as the set origin. > sl_subscribe has three incorrect rows (provider is A, B and D as the > receivers; and provider B, subscriber C, active true). The sl_path table > has "Event Pending" in the path rows for B->C and D->C. > What about the ACCEPT_SET ? I suspect it hasn't been confirmed/processed on all nodes. > Joe > >
- Previous message: [Slony1-hackers] Failover never completes
- Next message: [Slony1-hackers] Failover never completes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-hackers mailing list