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;
      

        Gliffy Diagrams

          Attachments

            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