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

DROP TEMPORARY TABLE IF EXISTS causes error 1290 with read_only option

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 5.5, 10.0, 10.1, 10.2, 10.1.28
    • Fix Version/s: 5.5.58, 10.0.33, 10.1.29, 10.2.10
    • Component/s: Server
    • Labels:
      None
    • Environment:
      CentOS 6

      Description

      I have a replicated slave with "read_only=1" set in my.cnf

      I have a user set up as follows:

      CREATE USER 'slave_user'@'localhost' IDENTIFIED BY 'slave_pswd';
      GRANT ALL ON mydb.* TO 'slave_user'@'localhost' WITH GRANT OPTION;
      

      If I log in as 'slave_user', I can create a temporary table, write to it, and then drop it successfully:

      CREATE TEMPORARY TABLE temp_x (id integer);
      INSERT INTO temp_x values (1);
      DROP TEMPORARY TABLE IF EXISTS temp_x;
      

      However, if I have not created a temporary table, and I start with:

      DROP TEMPORARY TABLE IF EXISTS temp_x;
      

      I get the error: ERROR 1290 (HY000): The MariaDB server is running with the --read-only option so it cannot execute this statement

      I have countless lines of application code which always checks to make sure a temporary table is dropped before creating it to avoid an "already exists" error. Always worked on MySQL 5.6 and lower, on the exact same slave database with read_only. After upgrading to MariaDB 10.1, this problem emerged.

        Attachments

          Activity

            People

            • Assignee:
              serg Sergei Golubchik
              Reporter:
              markalanpeter Mark Peter
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: