Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-450

Deadlock when setting replication system variables

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.5.27
    • Component/s: None
    • Labels:
      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

        Attachments

          Activity

            People

            • Assignee:
              knielsen Kristian Nielsen
              Reporter:
              knielsen Kristian Nielsen
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: