Details
-
Bug
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
There are a number of deadlock problems when setting replication system
variables rpl_do_, rpl_ignore_, rpl_wild_*, slave_skip_counter,
slave_net_timeout.
The setting of these takes LOCK_active_mi (and some of them also
active_mi->rld.run_lock) while holding LOCK_global_system_variables. But slave
start takes these locks in the opposite order (due to THD::init() taking
LOCK_global_system_variables).
The fix is to temporarily unlock LOCK_global_system_variables while taking the
replication locks.
Thanks to Davi Arnaut for finding this bug and providing the fix:
https://github.com/twitter/mysql/commit/be79b5405c0d6528c936733270319dab7b1e289a