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

Cannot create a table with 229 or greater columns in TokuDB

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.0.10
    • 10.0.11
    • None

    Description

      Unable to create a table with more than 228 columns in the TokuDB engine.
      Creating a table with 229 or more cols returns an "Incorrect information in file: './dbname/tablename.frm" error.
      The attached script reproduces the issue on MariaDB 10_0_10.

      Attachments

        Activity

          prohaska7 Rich Prohaska added a comment - - edited

          here is where the error occurs:

          #0  TABLE_SHARE::init_from_binary_frm_image (this=0x7ffff7f95490, thd=0x7ffdbcfbb070,
              write=false, frm_image=0x7ffd83e9d070 "\376\001\n+\026\001Z\001\001", frm_length=6595)
              at /home/prohaska/mariadb-10.0.10/sql/table.cc:950
          #1  0x00000000008307d5 in ha_create_table (thd=0x7ffdbcfbb070, path=0x7ffff7f97780 "./test/h",
              db=0x7ffd83c23b08 "test", table_name=0x7ffd83c234f8 "h", create_info=0x7ffff7f97bb0,
              frm=0x7ffff7f97990) at home/prohaska/mariadb-10.0.10/sql/handler.cc:4592
          #2  0x000000000072c063 in rea_create_table (thd=0x7ffdbcfbb070, frm=0x7ffff7f97990,
              path=0x7ffff7f97780 "./test/h", db=0x7ffd83c23b08 "test", table_name=0x7ffd83c234f8 "h",
              create_info=0x7ffff7f97bb0, file=0x7ffd83ea2b48, no_ha_create_table=false) at
              /home/prohaska/mariadb-10.0.10/sql/unireg.cc:367
          #3  0x00000000006e8f42 in create_table_impl (thd=0x7ffdbcfbb070, orig_db=0x7ffd83c23b08 "test",
              orig_table_name=0x7ffd83c234f8 "h", db=0x7ffd83c23b08 "test", table_name=0x7ffd83c234f8 "h",
              path=0x7ffff7f97780 "./test/h", create_info=0x7ffff7f97bb0, alter_info=0x7ffff7f97b20,
              create_table_mode=0, is_trans=0x7ffff7f97a2f, key_info=0x7ffff7f979a8, key_count=0x7ffff7f979a4,
              frm=0x7ffff7f97990) at /home/prohaska/mariadb-10.0.10/sql/sql_table.cc:4838
          #4  0x00000000006e9466 in mysql_create_table_no_lock (thd=0x7ffdbcfbb070, db=0x7ffd83c23b08 "test",
              table_name=0x7ffd83c234f8 "h", create_info=0x7ffff7f97bb0, alter_info=0x7ffff7f97b20,
              is_trans=0x7ffff797a2f, create_table_mode=0) at /home/prohaska/mariadb-10.0.10/sql/sql_table.cc:4952
          #5  0x00000000006e9657 in mysql_create_table (thd=0x7ffdbcfbb070, create_table=0x7ffd83c23530,
              create_info=0x7ffff7f97bb0, alter_info=0x7ffff7f97b20) at
              /home/prohaska/mariadb-10.0.10/sql/sql_table.cc:5005
          #6  0x000000000063e40e in mysql_execute_command (thd=0x7ffdbcfbb070) at
              /home/prohaska/mariadb-10.0.10/sql/sql_parse.cc:3058

          prohaska7 Rich Prohaska added a comment - - edited here is where the error occurs: #0 TABLE_SHARE::init_from_binary_frm_image (this=0x7ffff7f95490, thd=0x7ffdbcfbb070, write=false, frm_image=0x7ffd83e9d070 "\376\001\n+\026\001Z\001\001", frm_length=6595) at /home/prohaska/mariadb-10.0.10/sql/table.cc:950 #1 0x00000000008307d5 in ha_create_table (thd=0x7ffdbcfbb070, path=0x7ffff7f97780 "./test/h", db=0x7ffd83c23b08 "test", table_name=0x7ffd83c234f8 "h", create_info=0x7ffff7f97bb0, frm=0x7ffff7f97990) at home/prohaska/mariadb-10.0.10/sql/handler.cc:4592 #2 0x000000000072c063 in rea_create_table (thd=0x7ffdbcfbb070, frm=0x7ffff7f97990, path=0x7ffff7f97780 "./test/h", db=0x7ffd83c23b08 "test", table_name=0x7ffd83c234f8 "h", create_info=0x7ffff7f97bb0, file=0x7ffd83ea2b48, no_ha_create_table=false) at /home/prohaska/mariadb-10.0.10/sql/unireg.cc:367 #3 0x00000000006e8f42 in create_table_impl (thd=0x7ffdbcfbb070, orig_db=0x7ffd83c23b08 "test", orig_table_name=0x7ffd83c234f8 "h", db=0x7ffd83c23b08 "test", table_name=0x7ffd83c234f8 "h", path=0x7ffff7f97780 "./test/h", create_info=0x7ffff7f97bb0, alter_info=0x7ffff7f97b20, create_table_mode=0, is_trans=0x7ffff7f97a2f, key_info=0x7ffff7f979a8, key_count=0x7ffff7f979a4, frm=0x7ffff7f97990) at /home/prohaska/mariadb-10.0.10/sql/sql_table.cc:4838 #4 0x00000000006e9466 in mysql_create_table_no_lock (thd=0x7ffdbcfbb070, db=0x7ffd83c23b08 "test", table_name=0x7ffd83c234f8 "h", create_info=0x7ffff7f97bb0, alter_info=0x7ffff7f97b20, is_trans=0x7ffff797a2f, create_table_mode=0) at /home/prohaska/mariadb-10.0.10/sql/sql_table.cc:4952 #5 0x00000000006e9657 in mysql_create_table (thd=0x7ffdbcfbb070, create_table=0x7ffd83c23530, create_info=0x7ffff7f97bb0, alter_info=0x7ffff7f97b20) at /home/prohaska/mariadb-10.0.10/sql/sql_table.cc:5005 #6 0x000000000063e40e in mysql_execute_command (thd=0x7ffdbcfbb070) at /home/prohaska/mariadb-10.0.10/sql/sql_parse.cc:3058
          elenst Elena Stepanova added a comment - - edited

          To make it more searchable:

          10.0/sql/unireg.cc:236: LEX_CUSTRING build_frm_image(THD*, const char*, HA_CREATE_INFO*, List<Create_field>&, uint, KEY*, handler*): Assertion `pos == frm_ptr + (uint16) (*((uint16 *) (fileinfo+6)))' failed.
          140417  0:15:26 [ERROR] mysqld got signal 6 ;

          #6  0x00007f89023b4621 in *__GI___assert_fail (assertion=0xf41c48 "pos == frm_ptr + (uint16) (*((uint16 *) (fileinfo+6)))", file=<optimized out>, line=236, function=0xf42580 "LEX_CUSTRING build_frm_image(THD*, const char*, HA_CREATE_INFO*, List<Create_field>&, uint, KEY*, handler*)") at assert.c:81
          #7  0x0000000000762608 in build_frm_image (thd=0x7f88e6bba070, table=0x7f88ebfe2380 "coltest", create_info=0x7f890428cca0, create_fields=..., keys=0, key_info=0x7f88e6efec70, db_file=0x7f88e6efd310) at 10.0/sql/unireg.cc:236
          #8  0x000000000071f3fb in mysql_create_frm_image (thd=0x7f88e6bba070, db=0x7f88ebfe2990 "test", table_name=0x7f88ebfe2380 "coltest", create_info=0x7f890428cca0, alter_info=0x7f890428cc10, create_table_mode=0, key_info=0x7f890428ca98, key_count=0x7f890428ca94, frm=0x7f890428ca80) at 10.0/sql/sql_table.cc:4606
          #9  0x000000000071fc83 in create_table_impl (thd=0x7f88e6bba070, orig_db=0x7f88ebfe2990 "test", orig_table_name=0x7f88ebfe2380 "coltest", db=0x7f88ebfe2990 "test", table_name=0x7f88ebfe2380 "coltest", path=0x7f890428c870 "./test/coltest", create_info=0x7f890428cca0, alter_info=0x7f890428cc10, create_table_mode=0, is_trans=0x7f890428cb1f, key_info=0x7f890428ca98, key_count=0x7f890428ca94, frm=0x7f890428ca80) at 10.0/sql/sql_table.cc:4834
          #10 0x00000000007201f2 in mysql_create_table_no_lock (thd=0x7f88e6bba070, db=0x7f88ebfe2990 "test", table_name=0x7f88ebfe2380 "coltest", create_info=0x7f890428cca0, alter_info=0x7f890428cc10, is_trans=0x7f890428cb1f, create_table_mode=0) at 10.0/sql/sql_table.cc:4952
          #11 0x00000000007203e3 in mysql_create_table (thd=0x7f88e6bba070, create_table=0x7f88ebfe23b8, create_info=0x7f890428cca0, alter_info=0x7f890428cc10) at 10.0/sql/sql_table.cc:5005
          #12 0x00000000006751e2 in mysql_execute_command (thd=0x7f88e6bba070) at 10.0/sql/sql_parse.cc:3058
          #13 0x000000000067e48f in mysql_parse (thd=0x7f88e6bba070, rawbuf=0x7f88ebfe1088 "create table coltest(\n\tcol1 varchar(40),\n\tcol2 varchar(40),\n\tcol3 varchar(40),\n\tcol4 varchar(40),\n\tcol5 varchar(40),\n\tcol6 varchar(40),\n\tcol7 varchar(40),\n\tcol8 varchar(40),\n\tcol9 varchar(40),\n\tcol10 "..., length=4739, parser_state=0x7f890428d610) at 10.0/sql/sql_parse.cc:6452
          #14 0x0000000000671248 in dispatch_command (command=COM_QUERY, thd=0x7f88e6bba070, packet=0x7f88ebfc0071 "create table coltest(\n\tcol1 varchar(40),\n\tcol2 varchar(40),\n\tcol3 varchar(40),\n\tcol4 varchar(40),\n\tcol5 varchar(40),\n\tcol6 varchar(40),\n\tcol7 varchar(40),\n\tcol8 varchar(40),\n\tcol9 varchar(40),\n\tcol10 "..., packet_length=4739) at 10.0/sql/sql_parse.cc:1308
          #15 0x00000000006705ea in do_command (thd=0x7f88e6bba070) at 10.0/sql/sql_parse.cc:1005
          #16 0x000000000078b422 in do_handle_one_connection (thd_arg=0x7f88e6bba070) at 10.0/sql/sql_connect.cc:1379
          #17 0x000000000078b175 in handle_one_connection (arg=0x7f88e6bba070) at 10.0/sql/sql_connect.cc:1293
          #18 0x0000000000cb05c0 in pfs_spawn_thread (arg=0x7f88e6b97850) at 10.0/storage/perfschema/pfs.cc:1853
          #19 0x00007f8903f6bb50 in start_thread (arg=<optimized out>) at pthread_create.c:304

          5.5 doesn't seem to be affected.

          elenst Elena Stepanova added a comment - - edited To make it more searchable: 10.0/sql/unireg.cc:236: LEX_CUSTRING build_frm_image(THD*, const char*, HA_CREATE_INFO*, List<Create_field>&, uint, KEY*, handler*): Assertion `pos == frm_ptr + (uint16) (*((uint16 *) (fileinfo+6)))' failed. 140417 0:15:26 [ERROR] mysqld got signal 6 ; #6 0x00007f89023b4621 in *__GI___assert_fail (assertion=0xf41c48 "pos == frm_ptr + (uint16) (*((uint16 *) (fileinfo+6)))", file=<optimized out>, line=236, function=0xf42580 "LEX_CUSTRING build_frm_image(THD*, const char*, HA_CREATE_INFO*, List<Create_field>&, uint, KEY*, handler*)") at assert.c:81 #7 0x0000000000762608 in build_frm_image (thd=0x7f88e6bba070, table=0x7f88ebfe2380 "coltest", create_info=0x7f890428cca0, create_fields=..., keys=0, key_info=0x7f88e6efec70, db_file=0x7f88e6efd310) at 10.0/sql/unireg.cc:236 #8 0x000000000071f3fb in mysql_create_frm_image (thd=0x7f88e6bba070, db=0x7f88ebfe2990 "test", table_name=0x7f88ebfe2380 "coltest", create_info=0x7f890428cca0, alter_info=0x7f890428cc10, create_table_mode=0, key_info=0x7f890428ca98, key_count=0x7f890428ca94, frm=0x7f890428ca80) at 10.0/sql/sql_table.cc:4606 #9 0x000000000071fc83 in create_table_impl (thd=0x7f88e6bba070, orig_db=0x7f88ebfe2990 "test", orig_table_name=0x7f88ebfe2380 "coltest", db=0x7f88ebfe2990 "test", table_name=0x7f88ebfe2380 "coltest", path=0x7f890428c870 "./test/coltest", create_info=0x7f890428cca0, alter_info=0x7f890428cc10, create_table_mode=0, is_trans=0x7f890428cb1f, key_info=0x7f890428ca98, key_count=0x7f890428ca94, frm=0x7f890428ca80) at 10.0/sql/sql_table.cc:4834 #10 0x00000000007201f2 in mysql_create_table_no_lock (thd=0x7f88e6bba070, db=0x7f88ebfe2990 "test", table_name=0x7f88ebfe2380 "coltest", create_info=0x7f890428cca0, alter_info=0x7f890428cc10, is_trans=0x7f890428cb1f, create_table_mode=0) at 10.0/sql/sql_table.cc:4952 #11 0x00000000007203e3 in mysql_create_table (thd=0x7f88e6bba070, create_table=0x7f88ebfe23b8, create_info=0x7f890428cca0, alter_info=0x7f890428cc10) at 10.0/sql/sql_table.cc:5005 #12 0x00000000006751e2 in mysql_execute_command (thd=0x7f88e6bba070) at 10.0/sql/sql_parse.cc:3058 #13 0x000000000067e48f in mysql_parse (thd=0x7f88e6bba070, rawbuf=0x7f88ebfe1088 "create table coltest(\n\tcol1 varchar(40),\n\tcol2 varchar(40),\n\tcol3 varchar(40),\n\tcol4 varchar(40),\n\tcol5 varchar(40),\n\tcol6 varchar(40),\n\tcol7 varchar(40),\n\tcol8 varchar(40),\n\tcol9 varchar(40),\n\tcol10 "..., length=4739, parser_state=0x7f890428d610) at 10.0/sql/sql_parse.cc:6452 #14 0x0000000000671248 in dispatch_command (command=COM_QUERY, thd=0x7f88e6bba070, packet=0x7f88ebfc0071 "create table coltest(\n\tcol1 varchar(40),\n\tcol2 varchar(40),\n\tcol3 varchar(40),\n\tcol4 varchar(40),\n\tcol5 varchar(40),\n\tcol6 varchar(40),\n\tcol7 varchar(40),\n\tcol8 varchar(40),\n\tcol9 varchar(40),\n\tcol10 "..., packet_length=4739) at 10.0/sql/sql_parse.cc:1308 #15 0x00000000006705ea in do_command (thd=0x7f88e6bba070) at 10.0/sql/sql_parse.cc:1005 #16 0x000000000078b422 in do_handle_one_connection (thd_arg=0x7f88e6bba070) at 10.0/sql/sql_connect.cc:1379 #17 0x000000000078b175 in handle_one_connection (arg=0x7f88e6bba070) at 10.0/sql/sql_connect.cc:1293 #18 0x0000000000cb05c0 in pfs_spawn_thread (arg=0x7f88e6b97850) at 10.0/storage/perfschema/pfs.cc:1853 #19 0x00007f8903f6bb50 in start_thread (arg=<optimized out>) at pthread_create.c:304 5.5 doesn't seem to be affected.

          People

            serg Sergei Golubchik
            joe@tokutek.com Joe Laflamme (Inactive)
            Votes:
            0 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.