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

Deadlock between mysql_change_user(), SHOW VARIABLES and INSTALL PLUGIN

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 5.5.34
    • 5.5.35
    • None
    • 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;

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.