| Bug #74603 | Assertion `comma_length > 0' failed in mysql_prepare_create_table | ||
|---|---|---|---|
| Submitted: | 28 Oct 2014 11:33 | Modified: | 28 Oct 2014 11:47 |
| Reporter: | Ramesh Sivaraman | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: DDL | Severity: | S3 (Non-critical) |
| Version: | 5.6.20-debug/5.7 | OS: | Linux (CentOS 7) |
| Assigned to: | CPU Architecture: | Any | |
[28 Oct 2014 11:42]
MySQL Verification Team
C:\dbs>NET START MYSQLD56
The MySQLD56 service is starting.
The MySQLD56 service was started successfully.
C:\dbs>56
C:\dbs>c:\dbs\5.6\bin\mysql -uroot --port=3560 --debug-info --prompt="mysql 5.6 > "
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.22-debug-log Source distribution
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql 5.6 > DROP DATABASE test;CREATE DATABASE test;USE test;
Query OK, 1 row affected (0.17 sec)
Query OK, 1 row affected (0.01 sec)
Database changed
mysql 5.6 > SET character_set_filesystem=filename;
Query OK, 0 rows affected (0.00 sec)
mysql 5.6 > SET @session_start_value=@@character_set_filesystem;
Query OK, 0 rows affected (0.00 sec)
mysql 5.6 > SET @@session.collation_server=@session_start_value;
Query OK, 0 rows affected (0.00 sec)
mysql 5.6 > create table t0(a ENUM('',''));
Query OK, 0 rows affected, 1 warning (0.15 sec)
mysql 5.6 > DROP DATABASE test;CREATE DATABASE test;USE test;
Query OK, 1 row affected (0.12 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
mysql 5.6 > create table t0(a ENUM('',''));
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql 5.6 >
7ff78c184795 mysqld.exe!my_sigabrt_handler()[my_thr_init.c:458]
7ff78c75bfff mysqld.exe!raise()[winsig.c:594]
7ff78c768e10 mysqld.exe!abort()[abort.c:82]
7ff78c7595cb mysqld.exe!_wassert()[assert.c:380]
7ff78be0f41d mysqld.exe!mysql_prepare_create_table()[sql_table.cc:3478]
7ff78be15880 mysqld.exe!create_table_impl()[sql_table.cc:4764]
7ff78be0217b mysqld.exe!mysql_create_table_no_lock()[sql_table.cc:5030]
7ff78be01e7e mysqld.exe!mysql_create_table()[sql_table.cc:5078]
7ff78bdc54f4 mysqld.exe!mysql_execute_command()[sql_parse.cc:3061]
7ff78bdc3102 mysqld.exe!mysql_parse()[sql_parse.cc:6357]
7ff78bdcc63e mysqld.exe!dispatch_command()[sql_parse.cc:1335]
7ff78bdcb7a2 mysqld.exe!do_command()[sql_parse.cc:1034]
7ff78be1c402 mysqld.exe!do_handle_one_connection()[sql_connect.cc:982]
7ff78be1c232 mysqld.exe!handle_one_connection()[sql_connect.cc:899]
7ff78c636145 mysqld.exe!pfs_spawn_thread()[pfs.cc:1862]
7ff78c182d36 mysqld.exe!pthread_start()[my_winthread.c:62]
7ff78c76c655 mysqld.exe!_callthreadstartex()[threadex.c:376]
7ff78c76c8a7 mysqld.exe!_threadstartex()[threadex.c:359]
7ff95c2b16ad KERNEL32.DLL!BaseThreadInitThunk()
7ff95c504409 ntdll.dll!RtlUserThreadStart()
[28 Oct 2014 11:47]
MySQL Verification Team
Thank you for the bug report.
C:\dbs>NET START MYSQLD57
The MySQLD57 service is starting....
The MySQLD57 service was started successfully.
C:\dbs>57
C:\dbs>c:\dbs\5.7\bin\mysql -uroot --port=3570 --prompt="mysql 5.7 > "
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7.6-m16-debug Source distribution
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql 5.7 > DROP DATABASE test;CREATE DATABASE test;USE test;
Query OK, 0 rows affected (0.09 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
mysql 5.7 > SET character_set_filesystem=filename;
Query OK, 0 rows affected (0.00 sec)
mysql 5.7 > SET @session_start_value=@@character_set_filesystem;
Query OK, 0 rows affected (0.00 sec)
mysql 5.7 > SET @@session.collation_server=@session_start_value;
Query OK, 0 rows affected (0.00 sec)
mysql 5.7 > create table t0(a ENUM('',''));
ERROR 1291 (HY000): Column 'a' has duplicated value '' in ENUM
mysql 5.7 > DROP DATABASE test;CREATE DATABASE test;USE test;
Query OK, 0 rows affected (0.01 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
mysql 5.7 > create table t0(a ENUM('',''));
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql 5.7 >

Description: mysqld: /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_table.cc:3478: int mysql_prepare_create_table(THD*, HA_CREATE_INFO*, Alter_info*, bool, uint*, ha ndler*, KEY**, uint*, int): Assertion `comma_length > 0' failed. 11:24:19 UTC - mysqld got signal 6 ; **** GDB info #0 0x00007fba34dca771 in pthread_kill () from /lib64/libpthread.so.0 #1 0x0000000000a9035e in my_write_core (sig=6) at /ssd/ramesh/mysql-server/mysql-5.6/mysys/stacktrace.c:422 #2 0x0000000000723688 in handle_fatal_signal (sig=6) at /ssd/ramesh/mysql-server/mysql-5.6/sql/signal_handler.cc:230 #3 <signal handler called> #4 0x00007fba33bd65c9 in raise () from /lib64/libc.so.6 #5 0x00007fba33bd7cd8 in abort () from /lib64/libc.so.6 #6 0x00007fba33bcf536 in __assert_fail_base () from /lib64/libc.so.6 #7 0x00007fba33bcf5e2 in __assert_fail () from /lib64/libc.so.6 #8 0x0000000000836521 in mysql_prepare_create_table (thd=0x7fb9a1b24000, create_info=0x7fba353c13d0, alter_info=0x7fba353c0e70, tmp_table=false, db_options=0x7fba353c09d8, file=0x7fb99847f010, key_info_buffer=0x7fba353c0cc8, key_count=0x7fba353c0cc4, select_field_count=0) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_table.cc:3478 #9 0x000000000083a18b in create_table_impl (thd=0x7fb9a1b24000, db=0x7fb99841f660 "test", table_name=0x7fb99841f0c8 "t0", path=0x7fba353c0ac0 "./test/t0", create_info=0x7fba353c13d0, alter_info=0x7fba353c0e70, internal_tmp_table=false, select_field_count=0, no_ha_table=false, is_trans=0x7fba353c0d4e, key_info=0x7fba353c0cc8, key_count=0x7fba353c0cc4) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_table.cc:4764 #10 0x000000000083ac99 in mysql_create_table_no_lock (thd=0x7fb9a1b24000, db=0x7fb99841f660 "test", table_name=0x7fb99841f0c8 "t0", create_info=0x7fba353c13d0, alter_info=0x7fba353c0e70, select_field_count=0, is_trans=0x7fba353c0d4e) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_table.cc:5029 #11 0x000000000083ada2 in mysql_create_table (thd=0x7fb9a1b24000, create_table=0x7fb99841f100, create_info=0x7fba353c13d0, alter_info=0x7fba353c0e70) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_table.cc:5078 #12 0x00000000007d04b6 in mysql_execute_command (thd=0x7fb9a1b24000) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_parse.cc:3061 #13 0x00000000007d8fa4 in mysql_parse (thd=0x7fb9a1b24000, rawbuf=0x7fb99841f010 "create table t0(a ENUM('',''))", length=30, parser_state=0x7fba353c1e70) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_parse.cc:6245 #14 0x00000000007cc557 in dispatch_command (command=COM_QUERY, thd=0x7fb9a1b24000, packet=0x7fb9a1b62001 "create table t0(a ENUM('',''))", packet_length=30) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_parse.cc:1332 #15 0x00000000007cb646 in do_command (thd=0x7fb9a1b24000) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_parse.cc:1034 #16 0x0000000000793a61 in do_handle_one_connection (thd_arg=0x7fb9a1b24000) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_connect.cc:982 #17 0x000000000079354a in handle_one_connection (arg=0x7fb9a1b24000) at /ssd/ramesh/mysql-server/mysql-5.6/sql/sql_connect.cc:898 #18 0x0000000000ad4b5c in pfs_spawn_thread (arg=0x7fba2e738b00) at /ssd/ramesh/mysql-server/mysql-5.6/storage/perfschema/pfs.cc:1860 #19 0x00007fba34dc5df3 in start_thread () from /lib64/libpthread.so.0 #20 0x00007fba33c9701d in clone () from /lib64/libc.so.6 How to repeat: DROP DATABASE test;CREATE DATABASE test;USE test; SET character_set_filesystem=filename; SET @session_start_value=@@character_set_filesystem; SET @@session.collation_server=@session_start_value; create table t0(a ENUM('','')); DROP DATABASE test;CREATE DATABASE test;USE test; create table t0(a ENUM('',''));