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

innodb.temp_tablespace_freed fails with ER_WRONG_ARGUMENTS

    XMLWordPrintable

Details

    Description

      InnoDB temp_truncate_freed test case fails with

      innodb.temp_truncate_freed               w28 [ fail ]
              Test ended at 2024-07-06 14:27:53
      CURRENT_TEST: innodb.temp_truncate_freed
      mysqltest: At line 23: query 'set global innodb_buffer_pool_size = @old_innodb_buffer_pool_size' failed: ER_WRONG_ARGUMENTS (1210): Another buffer pool resize is already in progress.
      The result from queries just before the failure was:
      set @old_innodb_buffer_pool_size = @@innodb_buffer_pool_size;
      set @old_immediate_scrub_data_val= @@innodb_immediate_scrub_data_uncompressed;
      SET GLOBAL innodb_immediate_scrub_data_uncompressed=1;
      SET GLOBAL innodb_buffer_pool_size= 16777216;
      CREATE TEMPORARY TABLE t1(c1 MEDIUMTEXT) ENGINE=InnoDB;
      INSERT INTO t1 VALUES (repeat(1,16777215));
      DROP TEMPORARY TABLE t1;
      SET GLOBAL innodb_truncate_temporary_tablespace_now=1;
      SET GLOBAL innodb_buffer_pool_size=10485760;
      set global innodb_buffer_pool_size = @old_innodb_buffer_pool_size;
      

      Test case is as follows:

      SET GLOBAL innodb_buffer_pool_size= 16777216;
       
      CREATE TEMPORARY TABLE t1(c1 MEDIUMTEXT) ENGINE=InnoDB;
      INSERT INTO t1 VALUES (repeat(1,16777215));
      DROP TEMPORARY TABLE t1;
      SET GLOBAL innodb_truncate_temporary_tablespace_now=1;
       
      let $wait_timeout = 180;
      let $wait_condition =
        SELECT SUBSTR(variable_value, 1, 30) = 'Completed resizing buffer pool'
        FROM information_schema.global_status
        WHERE LOWER(variable_name) = 'innodb_buffer_pool_resize_status';
       
      SET GLOBAL innodb_buffer_pool_size=10485760;
      --source include/wait_condition.inc
      

      While looking at the test case, there is a possiblity that test case
      could bypass the wait condition before even resizing of buffer pool
      started.

      Fix is to check the wait_condition like:

      let $wait_condition =
        SELECT SUBSTR(variable_value, 1, 45) = 'Completed resizing buffer pool from 10485760'
        FROM information_schema.global_status
        WHERE LOWER(variable_name) = 'innodb_buffer_pool_resize_status';
      

      Attachments

        Activity

          People

            thiru Thirunarayanan Balathandayuthapani
            thiru Thirunarayanan Balathandayuthapani
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.