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

Deadlock when setting replication system variables

    Details

    • Type: Bug
    • Status: Closed
    • 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

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            knielsen Kristian Nielsen added a comment -

            Patch looks good, thanks Davi!

            Pushed to 5.5.

            Show
            knielsen Kristian Nielsen added a comment - Patch looks good, thanks Davi! Pushed to 5.5.

              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:

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 6 hours
                  6h