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