Hello Slony-I community,
        We're running Slony-I 2.2.6 with postgres 10.7 in a relatively simple 
config: four subscribers replicating two table sets from a single producer. In 
a recent service failover, the Slony-I FAILOVER op, which is normally quite 
reliable, failed on a postgres deadlock. The pg log shows it was trying to take 
an exclusive access lock (AccessExclusiveLock) in a move set op, which I assume 
is part of the FAILOVER op. Why is Slony-I doing this? We had expected most of 
our replicas would be able to continue serving queries during failover.  
Couldn't Slony-I get by with the EXCLUSIVE lock instead which would allow 
queries to continue?
        Thanks in advance,

2020-01-09 18:44:55.266 GMT 11192 ams_slony REDCATED-IP ams ERROR:  deadlock 
detected
2020-01-09 18:44:55.266 GMT 11192 ams_slony REDCATED-IP ams DETAIL:  Process 
11192 waits for AccessExclusiveLock on relation 18754 of database 16414; 
blocked by process 11998.
        Process 11998 waits for AccessShareLock on relation 18709 of database 
16414; blocked by process 11192.
        Process 11192: lock table "_ams_cluster".sl_event_lock, 
"_ams_cluster".sl_config_lock;select "_ams_cluster".moveSet(1, 3);
        Process 11998: SELECT i.alert_instance_id, i.alert_definition_id,   
i.alert_instance_key,   i.category_id, EXTRACT(EPOCH FROM 
i.start_active_date)::int8 as start_active_date, EXTRACT(EPOCH FROM 
i.ack_clear_time)::int8 as ack_clear_time, EXTRACT(EPOCH FROM 
i.condition_start)::int8 as condition_start,   i.acknowledged, i.unack_reason, 
i.viewer_visible, a.name as attr_name,   a.data_type as attr_data_type, a.value 
as attr_value FROM ams.alert_definition d,      ams.alert_attribute  a,      
ams.alert_instance   i WHERE  polling_active = 1 and active = 1 and 
viewer_visible = 1  and  priority in (1,2,3,4,5,6) and  email_only in (0) and  
i.category_id in (94,17 ,73 ,71 ,54 ,1000 ,90 ,38 ,12 ,77 ,76 ,48 ,75 ,51 ,74 
,72 ,14 ,79 ,36 ,32 ,91 ,56 ,59 ,69 ,78 ,25 ,37 ,60 ,9 ,84 ,80 ,31 ,68 ,49 ,53 
,86 ,70 ,57 ,6 ,64 ,88 ,50 ,1 ,52 ,65 ,999 ) and i.alert_instance_id in (select 
alert_instance_id from ams.alert_attribute where 
name='default_ticket_delegated_owner_keyword' and value i
 n ('NOCC_MAINT_QUEUE','CSD_PREMAINT_QUEUE','NOCC_PREMAIN
2020-01-09 18:44:55.266 GMT 11192 ams_slony REDACTED-IP ams HINT:  See server 
log for query details.
2020-01-09 18:44:55.266 GMT 11192 ams_slony REDCATED-IP ams CONTEXT:  SQL 
statement "drop trigger "_ams_cluster_lockedset" on "ams"."alert_attribute""
        PL/pgSQL function _ams_cluster.unlockset(integer) line 44 at EXECUTE
        SQL statement "SELECT "_ams_cluster".unlockSet(p_set_id)"
        PL/pgSQL function _ams_cluster.moveset(integer,integer) line 40 at 
PERFORM
2020-01-09 18:44:55.266 GMT 11192 ams_slony REDACTED-IP ams STATEMENT:  lock 
table "_ams_cluster".sl_event_lock, "_ams_cluster".sl_config_lock;select 
"_ams_cluster".moveSet(1, 3);
        
        Tom    (



_______________________________________________
Slony1-general mailing list
Slony1-general@lists.slony.info
http://lists.slony.info/mailman/listinfo/slony1-general

Reply via email to