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

Failing assertion for name length on RENAME TABLE

Details

    Description

      Reproduce

      --source include/have_innodb.inc
      --source include/not_windows.inc
      --source include/not_embedded.inc
       
      let $d255=###################################################;
      let $d250=##################################################;
      let $d245=#################################################;
      --replace_result $d255 d255
      eval create database `$d255`;
      eval create table `$d255`.`$d245` (x int) engine innodb;
       
      # CREATE TABLE works
      eval create table `$d255`.`$d250` (x int) engine innodb;
      eval drop table `$d255`.`$d250`;
       
      # RENAME TABLE doesn't work
      --error ER_IDENT_CAUSES_TOO_LONG_PATH
      eval rename table `$d255`.`$d245` to `$d255`.`$d250`;
       
      # and even assertion-fails!
      eval rename table `$d255`.`$d245` to a;
       
      eval drop database `$d255`;
      drop table t;
      

      Result

      RENAME TABLE fails to rename to `$d255`.`$d250` while CREATE TABLE succeeds. RENAME TABLE from `$d255`.`$d245` fails with assertion.

      #12 0x00007f77f8622e96 in __GI___assert_fail (assertion=0x55cdf1186df3 "len <= (64*3) * 2 + 1", file=0x55cdf11860d0 "../src/storage/innobase/trx/trx0rec.cc", line=1862, function=0x55cdf1186d77 "uint16_t trx_undo_page_report_rename(trx_t *, const dict_table_t *, buf_block_t *, mtr_t *)") at ./assert/assert.c:101
      #13 0x000055cdf0a42d21 in trx_undo_page_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8, block=0x7f77eeb616c0, mtr=0x7f77ec3b6100) at ../src/storage/innobase/trx/trx0rec.cc:1862
      #14 0x000055cdf0a42920 in trx_undo_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8) at ../src/storage/innobase/trx/trx0rec.cc:1909
      #15 0x000055cdf09aec34 in row_rename_table_for_mysql (old_name=0x7f77ec3b7720 "@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023/@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023", new_name=0x7f77ec3b7920 "test/a", trx=0x7f77eec61680, use_fk=true) at ../src/storage/innobase/row/row0mysql.cc:2655
      

      Attachments

        Issue Links

          Activity

            midenok Aleksey Midenkov created issue -
            midenok Aleksey Midenkov made changes -
            Field Original Value New Value
            Description h3. Reproduce
            {code:sql}
            --source include/have_innodb.inc
            --source include/not_windows.inc
            --source include/not_embedded.inc

            let $d255=###################################################;
            let $d250=##################################################;
            let $d245=#################################################;
            --replace_result $d255 d255
            eval create database `$d255`;

            eval create table `$d255`.`$d245` (x int) engine innodb;

            # CREATE TABLE works
            eval create table `$d255`.`$d250` (x int) engine innodb;
            eval drop table `$d255`.`$d250`;

            # RENAME TABLE doesn't work
            --error ER_IDENT_CAUSES_TOO_LONG_PATH
            eval rename table `$d255`.`$d245` to `$d255`.`$d250`;

            # and even fails!
            eval rename table `$d255`.`$d245` to a;

            eval drop database `$d255`;
            drop table t;

            --echo # end of 10.3 tests
            {code}

            h3. Result
            {code}
            #12 0x00007f77f8622e96 in __GI___assert_fail (assertion=0x55cdf1186df3 "len <= (64*3) * 2 + 1", file=0x55cdf11860d0 "../src/storage/innobase/trx/trx0rec.cc", line=1862, function=0x55cdf1186d77 "uint16_t trx_undo_page_report_rename(trx_t *, const dict_table_t *, buf_block_t *, mtr_t *)") at ./assert/assert.c:101
            #13 0x000055cdf0a42d21 in trx_undo_page_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8, block=0x7f77eeb616c0, mtr=0x7f77ec3b6100) at ../src/storage/innobase/trx/trx0rec.cc:1862
            #14 0x000055cdf0a42920 in trx_undo_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8) at ../src/storage/innobase/trx/trx0rec.cc:1909
            #15 0x000055cdf09aec34 in row_rename_table_for_mysql (old_name=0x7f77ec3b7720 "@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023/@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023", new_name=0x7f77ec3b7920 "test/a", trx=0x7f77eec61680, use_fk=true) at ../src/storage/innobase/row/row0mysql.cc:2655
            {code}
            h3. Reproduce
            {code:sql}
            --source include/have_innodb.inc
            --source include/not_windows.inc
            --source include/not_embedded.inc

            let $d255=###################################################;
            let $d250=##################################################;
            let $d245=#################################################;
            --replace_result $d255 d255
            eval create database `$d255`;

            eval create table `$d255`.`$d245` (x int) engine innodb;

            # CREATE TABLE works
            eval create table `$d255`.`$d250` (x int) engine innodb;
            eval drop table `$d255`.`$d250`;

            # RENAME TABLE doesn't work
            --error ER_IDENT_CAUSES_TOO_LONG_PATH
            eval rename table `$d255`.`$d245` to `$d255`.`$d250`;

            # and even assertion-fails!
            eval rename table `$d255`.`$d245` to a;

            eval drop database `$d255`;
            drop table t;

            --echo # end of 10.3 tests
            {code}

            h3. Result
            RENAME TABLE fails to rename to `$d255`.`$d250` while CREATE TABLE succeeds. RENAME TABLE from `$d255`.`$d245` fails with assertion.

            {code}
            #12 0x00007f77f8622e96 in __GI___assert_fail (assertion=0x55cdf1186df3 "len <= (64*3) * 2 + 1", file=0x55cdf11860d0 "../src/storage/innobase/trx/trx0rec.cc", line=1862, function=0x55cdf1186d77 "uint16_t trx_undo_page_report_rename(trx_t *, const dict_table_t *, buf_block_t *, mtr_t *)") at ./assert/assert.c:101
            #13 0x000055cdf0a42d21 in trx_undo_page_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8, block=0x7f77eeb616c0, mtr=0x7f77ec3b6100) at ../src/storage/innobase/trx/trx0rec.cc:1862
            #14 0x000055cdf0a42920 in trx_undo_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8) at ../src/storage/innobase/trx/trx0rec.cc:1909
            #15 0x000055cdf09aec34 in row_rename_table_for_mysql (old_name=0x7f77ec3b7720 "@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023/@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023", new_name=0x7f77ec3b7920 "test/a", trx=0x7f77eec61680, use_fk=true) at ../src/storage/innobase/row/row0mysql.cc:2655
            {code}
            midenok Aleksey Midenkov made changes -
            midenok Aleksey Midenkov made changes -
            Affects Version/s 10.10 [ 27530 ]
            midenok Aleksey Midenkov made changes -
            midenok Aleksey Midenkov made changes -
            Assignee Marko Mäkelä [ marko ]
            midenok Aleksey Midenkov made changes -
            Description h3. Reproduce
            {code:sql}
            --source include/have_innodb.inc
            --source include/not_windows.inc
            --source include/not_embedded.inc

            let $d255=###################################################;
            let $d250=##################################################;
            let $d245=#################################################;
            --replace_result $d255 d255
            eval create database `$d255`;

            eval create table `$d255`.`$d245` (x int) engine innodb;

            # CREATE TABLE works
            eval create table `$d255`.`$d250` (x int) engine innodb;
            eval drop table `$d255`.`$d250`;

            # RENAME TABLE doesn't work
            --error ER_IDENT_CAUSES_TOO_LONG_PATH
            eval rename table `$d255`.`$d245` to `$d255`.`$d250`;

            # and even assertion-fails!
            eval rename table `$d255`.`$d245` to a;

            eval drop database `$d255`;
            drop table t;

            --echo # end of 10.3 tests
            {code}

            h3. Result
            RENAME TABLE fails to rename to `$d255`.`$d250` while CREATE TABLE succeeds. RENAME TABLE from `$d255`.`$d245` fails with assertion.

            {code}
            #12 0x00007f77f8622e96 in __GI___assert_fail (assertion=0x55cdf1186df3 "len <= (64*3) * 2 + 1", file=0x55cdf11860d0 "../src/storage/innobase/trx/trx0rec.cc", line=1862, function=0x55cdf1186d77 "uint16_t trx_undo_page_report_rename(trx_t *, const dict_table_t *, buf_block_t *, mtr_t *)") at ./assert/assert.c:101
            #13 0x000055cdf0a42d21 in trx_undo_page_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8, block=0x7f77eeb616c0, mtr=0x7f77ec3b6100) at ../src/storage/innobase/trx/trx0rec.cc:1862
            #14 0x000055cdf0a42920 in trx_undo_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8) at ../src/storage/innobase/trx/trx0rec.cc:1909
            #15 0x000055cdf09aec34 in row_rename_table_for_mysql (old_name=0x7f77ec3b7720 "@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023/@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023", new_name=0x7f77ec3b7920 "test/a", trx=0x7f77eec61680, use_fk=true) at ../src/storage/innobase/row/row0mysql.cc:2655
            {code}
            h3. Reproduce
            {code:sql}
            --source include/have_innodb.inc
            --source include/not_windows.inc
            --source include/not_embedded.inc

            let $d255=###################################################;
            let $d250=##################################################;
            let $d245=#################################################;
            --replace_result $d255 d255
            eval create database `$d255`;

            eval create table `$d255`.`$d245` (x int) engine innodb;

            # CREATE TABLE works
            eval create table `$d255`.`$d250` (x int) engine innodb;
            eval drop table `$d255`.`$d250`;

            # RENAME TABLE doesn't work
            --error ER_IDENT_CAUSES_TOO_LONG_PATH
            eval rename table `$d255`.`$d245` to `$d255`.`$d250`;

            # and even assertion-fails!
            eval rename table `$d255`.`$d245` to a;

            eval drop database `$d255`;
            drop table t;
            {code}

            h3. Result
            RENAME TABLE fails to rename to `$d255`.`$d250` while CREATE TABLE succeeds. RENAME TABLE from `$d255`.`$d245` fails with assertion.

            {code}
            #12 0x00007f77f8622e96 in __GI___assert_fail (assertion=0x55cdf1186df3 "len <= (64*3) * 2 + 1", file=0x55cdf11860d0 "../src/storage/innobase/trx/trx0rec.cc", line=1862, function=0x55cdf1186d77 "uint16_t trx_undo_page_report_rename(trx_t *, const dict_table_t *, buf_block_t *, mtr_t *)") at ./assert/assert.c:101
            #13 0x000055cdf0a42d21 in trx_undo_page_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8, block=0x7f77eeb616c0, mtr=0x7f77ec3b6100) at ../src/storage/innobase/trx/trx0rec.cc:1862
            #14 0x000055cdf0a42920 in trx_undo_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8) at ../src/storage/innobase/trx/trx0rec.cc:1909
            #15 0x000055cdf09aec34 in row_rename_table_for_mysql (old_name=0x7f77ec3b7720 "@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023/@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023", new_name=0x7f77ec3b7920 "test/a", trx=0x7f77eec61680, use_fk=true) at ../src/storage/innobase/row/row0mysql.cc:2655
            {code}
            midenok Aleksey Midenkov made changes -
            Description h3. Reproduce
            {code:sql}
            --source include/have_innodb.inc
            --source include/not_windows.inc
            --source include/not_embedded.inc

            let $d255=###################################################;
            let $d250=##################################################;
            let $d245=#################################################;
            --replace_result $d255 d255
            eval create database `$d255`;

            eval create table `$d255`.`$d245` (x int) engine innodb;

            # CREATE TABLE works
            eval create table `$d255`.`$d250` (x int) engine innodb;
            eval drop table `$d255`.`$d250`;

            # RENAME TABLE doesn't work
            --error ER_IDENT_CAUSES_TOO_LONG_PATH
            eval rename table `$d255`.`$d245` to `$d255`.`$d250`;

            # and even assertion-fails!
            eval rename table `$d255`.`$d245` to a;

            eval drop database `$d255`;
            drop table t;
            {code}

            h3. Result
            RENAME TABLE fails to rename to `$d255`.`$d250` while CREATE TABLE succeeds. RENAME TABLE from `$d255`.`$d245` fails with assertion.

            {code}
            #12 0x00007f77f8622e96 in __GI___assert_fail (assertion=0x55cdf1186df3 "len <= (64*3) * 2 + 1", file=0x55cdf11860d0 "../src/storage/innobase/trx/trx0rec.cc", line=1862, function=0x55cdf1186d77 "uint16_t trx_undo_page_report_rename(trx_t *, const dict_table_t *, buf_block_t *, mtr_t *)") at ./assert/assert.c:101
            #13 0x000055cdf0a42d21 in trx_undo_page_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8, block=0x7f77eeb616c0, mtr=0x7f77ec3b6100) at ../src/storage/innobase/trx/trx0rec.cc:1862
            #14 0x000055cdf0a42920 in trx_undo_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8) at ../src/storage/innobase/trx/trx0rec.cc:1909
            #15 0x000055cdf09aec34 in row_rename_table_for_mysql (old_name=0x7f77ec3b7720 "@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023/@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023", new_name=0x7f77ec3b7920 "test/a", trx=0x7f77eec61680, use_fk=true) at ../src/storage/innobase/row/row0mysql.cc:2655
            {code}
            h3. Reproduce
            {code:sql}
            --source include/have_innodb.inc
            --source include/not_windows.inc
            --source include/not_embedded.inc

            let $d255=###################################################;
            let $d250=##################################################;
            let $d245=#################################################;
            --replace_result $d255 d255
            eval create database `$d255`;
            eval create table `$d255`.`$d245` (x int) engine innodb;

            # CREATE TABLE works
            eval create table `$d255`.`$d250` (x int) engine innodb;
            eval drop table `$d255`.`$d250`;

            # RENAME TABLE doesn't work
            --error ER_IDENT_CAUSES_TOO_LONG_PATH
            eval rename table `$d255`.`$d245` to `$d255`.`$d250`;

            # and even assertion-fails!
            eval rename table `$d255`.`$d245` to a;

            eval drop database `$d255`;
            drop table t;
            {code}

            h3. Result
            RENAME TABLE fails to rename to `$d255`.`$d250` while CREATE TABLE succeeds. RENAME TABLE from `$d255`.`$d245` fails with assertion.

            {code}
            #12 0x00007f77f8622e96 in __GI___assert_fail (assertion=0x55cdf1186df3 "len <= (64*3) * 2 + 1", file=0x55cdf11860d0 "../src/storage/innobase/trx/trx0rec.cc", line=1862, function=0x55cdf1186d77 "uint16_t trx_undo_page_report_rename(trx_t *, const dict_table_t *, buf_block_t *, mtr_t *)") at ./assert/assert.c:101
            #13 0x000055cdf0a42d21 in trx_undo_page_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8, block=0x7f77eeb616c0, mtr=0x7f77ec3b6100) at ../src/storage/innobase/trx/trx0rec.cc:1862
            #14 0x000055cdf0a42920 in trx_undo_report_rename (trx=0x7f77eec61680, table=0x7f77b8216ce8) at ../src/storage/innobase/trx/trx0rec.cc:1909
            #15 0x000055cdf09aec34 in row_rename_table_for_mysql (old_name=0x7f77ec3b7720 "@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023/@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023@0023", new_name=0x7f77ec3b7920 "test/a", trx=0x7f77eec61680, use_fk=true) at ../src/storage/innobase/row/row0mysql.cc:2655
            {code}
            lizardo Luis Eduardo Oliveira Lizardo (Inactive) made changes -
            Assignee Marko Mäkelä [ marko ] Luis Eduardo Oliveira Lizardo [ JIRAUSER51996 ]
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            Assignee Luis Eduardo Oliveira Lizardo [ JIRAUSER51996 ] Marko Mäkelä [ marko ]
            marko Marko Mäkelä made changes -
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Fix Version/s 10.5 [ 23123 ]
            Fix Version/s 10.6 [ 24028 ]
            Fix Version/s 10.7 [ 24805 ]
            Fix Version/s 10.8 [ 26121 ]
            Fix Version/s 10.9 [ 26905 ]
            Fix Version/s 10.10 [ 27530 ]
            Affects Version/s 10.3 [ 22126 ]
            Affects Version/s 10.4 [ 22408 ]
            Affects Version/s 10.5 [ 23123 ]
            Affects Version/s 10.6 [ 24028 ]
            Affects Version/s 10.7 [ 24805 ]
            Affects Version/s 10.8 [ 26121 ]
            Affects Version/s 10.9 [ 26905 ]
            marko Marko Mäkelä made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            marko Marko Mäkelä made changes -
            issue.field.resolutiondate 2022-08-30 11:26:16.0 2022-08-30 11:26:16.518
            marko Marko Mäkelä made changes -
            Fix Version/s 10.3.37 [ 28404 ]
            Fix Version/s 10.4.27 [ 28405 ]
            Fix Version/s 10.5.18 [ 28421 ]
            Fix Version/s 10.6.10 [ 28407 ]
            Fix Version/s 10.7.6 [ 28408 ]
            Fix Version/s 10.8.5 [ 28308 ]
            Fix Version/s 10.9.3 [ 28409 ]
            Fix Version/s 10.10.2 [ 28410 ]
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Fix Version/s 10.5 [ 23123 ]
            Fix Version/s 10.6 [ 24028 ]
            Fix Version/s 10.7 [ 24805 ]
            Fix Version/s 10.8 [ 26121 ]
            Fix Version/s 10.9 [ 26905 ]
            Fix Version/s 10.10 [ 27530 ]
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]

            People

              marko Marko Mäkelä
              midenok Aleksey Midenkov
              Votes:
              0 Vote for this issue
              Watchers:
              3 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.