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