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

Deadlock between mysql_change_user(), SHOW VARIABLES and INSTALL PLUGIN

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.5.34
    • Fix Version/s: 5.5.35
    • Component/s: None
    • Labels:
      None

      Description

      3 threads required to reproduce this deadlock:
      thread1: mysql_change_user() (or connects/disconnects)
      thread2: INSTALL PLUGIN
      thread3: SHOW VARIABLES

      Easily repeatable with mtr test case:

      delimiter |;
      CREATE PROCEDURE p_install(x INT)
      BEGIN
        DECLARE CONTINUE HANDLER FOR 1126 BEGIN END;
        WHILE x DO
          SET x= x - 1;
          INSTALL PLUGIN no_such_plugin SONAME 'no_such_object';
        END WHILE;
      END|
      
      CREATE PROCEDURE p_show_vars(x INT)
      WHILE x DO
        SET x= x - 1;
        SHOW VARIABLES;
      END WHILE|
      delimiter ;|
      
      connect(con1, localhost, root,,);
      connect(con2, localhost, root,,);
      
      connection con1;
      --send CALL p_install(100);
      
      connection con2;
      --send CALL p_show_vars(100);
      
      connection default;
      
      disable_result_log;
      let $i= 100;
      while ($i)
      {
        change_user;
        dec $i;
      }
      
      connection con1;
      reap;
      connection con2;
      reap;
      connection default;
      enable_result_log;
      
      disconnect con1;
      disconnect con2;
      DROP PROCEDURE p_install;
      DROP PROCEDURE p_show_vars;
      

        Issue Links

          Activity

          Hide
          laurynas Laurynas Biveinis added a comment -

          The MTR testcase fails the MySQL 5.6.15 too. Has this been reported to Oracle? If not, would you mind me reporting it with your testcase?

          Show
          laurynas Laurynas Biveinis added a comment - The MTR testcase fails the MySQL 5.6.15 too. Has this been reported to Oracle? If not, would you mind me reporting it with your testcase?
          Hide
          svoj Sergey Vojtovich added a comment - - edited

          Laurynas, it hasn't been reported to Oracle yet. I'd appreciate if you could report it to Oracle.

          Show
          svoj Sergey Vojtovich added a comment - - edited Laurynas, it hasn't been reported to Oracle yet. I'd appreciate if you could report it to Oracle.
          Hide
          svoj Sergey Vojtovich added a comment -

          Sergei, please review fix for this bug.

          Show
          svoj Sergey Vojtovich added a comment - Sergei, please review fix for this bug.
          Show
          laurynas Laurynas Biveinis added a comment - http://bugs.mysql.com/bug.php?id=71236
          Hide
          svoj Sergey Vojtovich added a comment -

          Sergei, please review updated patch.

          Show
          svoj Sergey Vojtovich added a comment - Sergei, please review updated patch.
          Hide
          svoj Sergey Vojtovich added a comment -

          Fixed in 5.5.35, revno: 4051, revision-id: svoj@mariadb.org-20140128071243-807nozcys0r84mxv

          Show
          svoj Sergey Vojtovich added a comment - Fixed in 5.5.35, revno: 4051, revision-id: svoj@mariadb.org-20140128071243-807nozcys0r84mxv
          Show
          dbart Daniel Bartholomew added a comment - http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/4051

            People

            • Assignee:
              svoj Sergey Vojtovich
              Reporter:
              svoj Sergey Vojtovich
            • Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 50 minutes
                50m