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

Cannot create a table with 229 or greater columns in TokuDB

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 10.0.10
    • Fix Version/s: 10.0.11
    • Component/s: None
    • Labels:

      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.

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            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
            
            Show
            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
            Hide
            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.

            Show
            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

              • Assignee:
                serg Sergei Golubchik
                Reporter:
                joe@tokutek.com Joe Laflamme
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: