Casey Duncan casey
Tue Jan 30 13:41:03 PST 2007
On Jan 29, 2007, at 9:28 PM, Jeff Frost wrote:

> On Mon, 29 Jan 2007, Casey Duncan wrote:
>
>> I recently upgraded to slony 1.2.6. We were rehearsing a database
>> schema upgrade for a two node slony cluster and came across an error
>> at the end. We need to avoid having the execute script do its
>> exclusive locks with the application talking to the database, so we
>> do it using the following dance:
>>
>> 1. Turn off slon daemons
>> 2. Switch application to use the secondary (read-only of course)
>> 3. Run the upgrade script on the primary using execute script and add
>> tables & sequences into a new set and merge waiting for subscriptions
>> to be confirmed (which blocks).
>> 4. Switch the application back to the primary db
>> 5. Turn the slon daemons back on (which unblocks #3).
>>
>> All was well until step #5 when we got this error:
>> <stdin>:12: PGRES_FATAL_ERROR select "_radio".mergeSet(1, 9999);  -
>> ERROR:  Slony-I: set 9999 has subscriptions in progress - cannot  
>> merge
>
> Did the DDL changes complete on the slave?  I'm wondering if they  
> got lost because the slon was not running at the time the DDL  
> changes were submitted.

Nope the slave did not get the DDL (or at least it was not  
successfully committed).

On my dev server, I was able to reproduce the same failure even with  
the slon daemons still running, so I think that pops a hole in theory  
that not having slon running is the culprit (which is fine w/me btw  
since that's a non-starter for us). Interestingly data changes made  
in the upgrade script *did* propagate to the secondary.

Any other ideas?

-Casey




More information about the Slony1-general mailing list