Bug #88270 Assertion `length == 3' failed.
Submitted: 28 Oct 2017 1:24 Modified: 6 Dec 2017 13:21
Reporter: Roel Van de Paar Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: DML Severity:S6 (Debug Builds)
Version:8.0.3 RC OS:Any
Assigned to: CPU Architecture:Any
Tags: debug

[28 Oct 2017 1:24] Roel Van de Paar
Description:
2017-10-28T00:54:16.390705Z 0 [Note] /sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/bin/mysqld: ready for connections. Version: '8.0.3-rc-debug-log'  socket: '/sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/socket.sock'  port: 16654  MySQL Community Server (GPL)
mysqld: /git/mysql-server_dbg/sql/field.cc:6666: virtual size_t Field_newdate::make_sort_key(uchar*, size_t): Assertion `length == 3' failed.
00:54:54 UTC - mysqld got signal 6 ;

Core was generated by `/sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/bin/mysqld --no-defaults --sql_'.
Program terminated with signal 6, Aborted.
#0  0x00007f5e323ac9b1 in __pthread_kill (threadid=<optimized out>, signo=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
61	  val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
(gdb) bt
#0  0x00007f5e323ac9b1 in __pthread_kill (threadid=<optimized out>, signo=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
#1  0x000000000369e428 in my_write_core (sig=6) at /git/mysql-server_dbg/mysys/stacktrace.cc:291
#2  0x000000000286b8f6 in handle_fatal_signal (sig=6) at /git/mysql-server_dbg/sql/signal_handler.cc:234
#3  <signal handler called>
#4  0x00007f5e306c41f7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#5  0x00007f5e306c58e8 in __GI_abort () at abort.c:90
#6  0x00007f5e306bd266 in __assert_fail_base (fmt=0x7f5e3080fe68 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x4425d00 "length == 3", file=file@entry=0x44258f0 "/git/mysql-server_dbg/sql/field.cc", 
    line=line@entry=6666, 
    function=function@entry=0x442a120 <Field_newdate::make_sort_key(unsigned char*, unsigned long)::__PRETTY_FUNCTION__> "virtual size_t Field_newdate::make_sort_key(uchar*, size_t)") at assert.c:92
#7  0x00007f5e306bd312 in __GI___assert_fail (assertion=0x4425d00 "length == 3", file=0x44258f0 "/git/mysql-server_dbg/sql/field.cc", 
    line=6666, 
    function=0x442a120 <Field_newdate::make_sort_key(unsigned char*, unsigned long)::__PRETTY_FUNCTION__> "virtual size_t Field_newdate::make_sort_key(uchar*, size_t)") at assert.c:101
#8  0x0000000002994c4e in Field_newdate::make_sort_key (this=0x7f5deacd9c80, to=0x7f5dead7fd50 "", length=4)
    at /git/mysql-server_dbg/sql/field.cc:6666
#9  0x0000000002ae98ee in Item_func_weight_string::val_str (this=0x7f5deac2fb58, str=0x7f5deae60c30)
    at /git/mysql-server_dbg/sql/item_strfunc.cc:3507
#10 0x0000000002ae9c84 in Item_func_hex::val_str_ascii (this=0x7f5deadbc2b8, str=0x7f5deae60c30)
    at /git/mysql-server_dbg/sql/item_strfunc.cc:3572
#11 0x0000000002addd89 in Item_str_func::val_str_from_val_str_ascii (this=0x7f5deadbc2b8, str=0x7f5deae60c30, str2=0x7f5deadbc388)
    at /git/mysql-server_dbg/sql/item_strfunc.cc:111
#12 0x00000000028b0e2c in Item_str_ascii_func::val_str (this=0x7f5deadbc2b8, str=0x7f5deae60c30)
    at /git/mysql-server_dbg/sql/item_strfunc.h:182
#13 0x0000000002a264d6 in Item_copy_string::copy (this=0x7f5deae60c18, thd=0x7f5deac19000) at /git/mysql-server_dbg/sql/item.cc:4784
#14 0x0000000002470397 in copy_fields (param=0x7f5deadbd6f0, thd=0x7f5deac19000) at /git/mysql-server_dbg/sql/sql_executor.cc:6781
#15 0x00000000024689e0 in end_send_group (join=0x7f5deadbd5d8, qep_tab=0x7f5deae60370, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:3576
#16 0x0000000002464f21 in evaluate_join_record (join=0x7f5deadbd5d8, qep_tab=0x7f5deae601f0)
    at /git/mysql-server_dbg/sql/sql_executor.cc:2056
#17 0x00000000024642dc in sub_select (join=0x7f5deadbd5d8, qep_tab=0x7f5deae601f0, end_of_records=false)
    at /git/mysql-server_dbg/sql/sql_executor.cc:1704
#18 0x0000000002463857 in do_select (join=0x7f5deadbd5d8) at /git/mysql-server_dbg/sql/sql_executor.cc:1295
#19 0x0000000002460c55 in JOIN::exec (this=0x7f5deadbd5d8) at /git/mysql-server_dbg/sql/sql_executor.cc:285
#20 0x0000000002512b73 in Sql_cmd_dml::execute_inner (this=0x7f5deadbd370, thd=0x7f5deac19000)
    at /git/mysql-server_dbg/sql/sql_select.cc:725
#21 0x0000000002512627 in Sql_cmd_dml::execute (this=0x7f5deadbd370, thd=0x7f5deac19000) at /git/mysql-server_dbg/sql/sql_select.cc:605
#22 0x00000000024be1ff in mysql_execute_command (thd=0x7f5deac19000, first_level=true) at /git/mysql-server_dbg/sql/sql_parse.cc:4628
#23 0x00000000024c042b in mysql_parse (thd=0x7f5deac19000, parser_state=0x7f5e329522f0) at /git/mysql-server_dbg/sql/sql_parse.cc:5414
#24 0x00000000024b68e7 in dispatch_command (thd=0x7f5deac19000, com_data=0x7f5e32952b80, command=COM_QUERY)
    at /git/mysql-server_dbg/sql/sql_parse.cc:1708
#25 0x00000000024b53f5 in do_command (thd=0x7f5deac19000) at /git/mysql-server_dbg/sql/sql_parse.cc:1291
#26 0x000000000285b2d6 in handle_connection (arg=0x7f5e1eaeb3c0)
    at /git/mysql-server_dbg/sql/conn_handler/connection_handler_per_thread.cc:328
#27 0x00000000036ec54d in pfs_spawn_thread (arg=0x7f5e1eb89620) at /git/mysql-server_dbg/storage/perfschema/pfs.cc:2985
#28 0x00007f5e323a7e25 in start_thread (arg=0x7f5e32953700) at pthread_create.c:308
#29 0x00007f5e3078734d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

How to repeat:
# mysqld options required for replay:  --sql_mode= --server-id=1
CREATE DATABASE test;
USE test;
create TABLE t1(a date,b date,c date,d date);
insert into t1 values(0,0,4756,0);
SELECT HEX(WEIGHT_STRING(a)) as wa,GROUP_CONCAT(HEX(CONVERT(a USING ucs2)) ORDER BY LENGTH(a),BINARY a) FROM t1 GROUP BY a ORDER BY a;
[28 Oct 2017 18:44] MySQL Verification Team
Thank you for the bug report. Verified as described.
[6 Dec 2017 13:21] Jon Stephens
Fixed in MySQL 8.0.4. Seems to have affected debug build only, no user-visible changes. Closed.