• Sergei Golubchik's avatar
    updating @@wsrep_cluster_address deadlocks · 26965387
    Sergei Golubchik authored
    wsrep_cluster_address_update() causes LOCK_wsrep_slave_threads
    to be locked under LOCK_wsrep_cluster_config, while normally
    the order should be the opposite.
    
    Fix: don't protect @@wsrep_cluster_address value with the
    LOCK_wsrep_cluster_config, LOCK_global_system_variables is enough.
    
    Only protect wsrep reinitialization with the LOCK_wsrep_cluster_config.
    And make it use a local copy of the global @@wsrep_cluster_address.
    
    Also, introduce a helper function that checks whether
    wsrep_cluster_address is set and also asserts that it can be safely
    read by the caller.
    26965387
wsrep_mysqld.cc 86 KB