Hi there

My config is a primary:secondary DNS srv failover Kamailio 5.2 setup using DMQ for syncing Location, Presence, HTable etc.

For Presence db_mode set to 0 on both servers.

This works fine on the primary server but on the secondary server I get repeated mysql deadlock errors. I seem to be missing a config setting to turn off db_mode fully for presence but I cant see where. Error seems to occur on message-summary updates from master that are being replicated to slave via DMQ.

Mar 08 13:52:39 /usr/sbin/kamailio[17493]: ERROR: <core> [db_query.c:181]: db_do_raw_query(): error while submitting query
Mar 08 13:52:39 /usr/sbin/kamailio[17493]: ERROR: db_mysql [km_dbase.c:714]: db_mysql_end_transaction(): executing raw_query
Mar 08 13:52:39 /usr/sbin/kamailio[17493]: ERROR: presence [presentity.c:1299]: update_presentity(): in end_transaction
Mar 08 13:52:40 /usr/sbin/kamailio[17493]: ERROR: db_mysql [km_dbase.c:128]: db_mysql_submit_query(): driver error on query: Deadlock found when trying to get lock; try restarting transaction (1213)

I am using the following presence related modules

loadmodule "presence.so"
loadmodule "presence_mwi.so"
loadmodule "presence_xml.so"
loadmodule "pua.so"
loadmodule "rls.so"
loadmodule "xcap_server.so"
loadmodule "xcap_client.so"

params are set as below


loadmodule "presence.so"
loadmodule "presence_mwi.so"
loadmodule "presence_xml.so"
loadmodule "pua.so"
loadmodule "rls.so"
loadmodule "xcap_server.so"
loadmodule "xcap_client.so"

params are set as below with PRESENCEDBMODE set to 0 on both servers.

#!ifdef WITH_PRESENCE
# ----- presence params -----
modparam("presence", "db_url", DBURL)
modparam("presence", "db_update_period", 5)
modparam("presence", "server_address", "sip:myserver.com")
modparam("presence", "subs_db_mode", PRESENCEDBMODE)
modparam("presence", "send_fast_notify", 1)
modparam("presence", "timeout_rm_subs", 0)
modparam("presence", "db_table_lock_type", 0)
modparam("presence", "notifier_processes", 3)
modparam("presence", "local_log_level", 3)
modparam("presence", "publ_cache", 1)
#!ifdef WITH_DMQ
modparam("presence", "enable_dmq", 1)
#!else
modparam("presence", "enable_dmq", 0)
#!endif

#!ifdef WITH_BUDDY
# ----- presence_xml params -----
modparam("presence_xml", "db_url", DBURL)
modparam("presence_xml", "passive_mode", 1)
modparam("presence_xml", "integrated_xcap_server", 1)
modparam("presence_xml", "xcap_server", "https://xcap.myserver.com/xcap-root")
modparam("presence_xml", "force_dummy_presence", 1)
modparam("pua", "db_url", DBURL)
modparam("pua", "db_mode", PRESENCEDBMODE)
modparam("pua", "db_table_lock_write", 0)
modparam("pua", "check_remote_contact", 0)

modparam("rls", "db_url", DBURL)
modparam("rls", "db_mode", PRESENCEDBMODE)
modparam("rls", "notifier_processes", 2)
modparam("rls", "integrated_xcap_server", 1)
modparam("rls", "xcap_root", "https://xcap.myserver.com/xcap-root")
modparam("rls", "server_address", "sip:rls@myserver.com")
modparam("rls", "outbound_proxy", "sip:myserver.com")
modparam("rls", "disable_remote_presence", 0)
modparam("rls", "max_backend_subs", 1000)
modparam("rls", "to_presence_code", 10)
modparam("rls", "rls_event", "presence")
modparam("rls", "rls_event", "presence.winfo")
modparam("xcap_server", "db_url", DBURL)
modparam("xcap_server", "directory_scheme", -1)
modparam("xcap_server", "xcap_root", "/xcap-root/")
modparam("xcap_client", "db_url", DBURL)
modparam("xcap_client", "query_period", 50)

Any ideas?

thanks
Paul