Bug #74220 ctype-ucs2.c:2522: my_well_formed_len_utf32: Assertion `(length % 4) == 0' fail
Submitted: 4 Oct 2014 6:18 Modified: 11 Apr 2018 15:53
Reporter: Roel Van de Paar Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Charsets Severity:S6 (Debug Builds)
Version:5.6.20, 5.6.22 OS:Any
Assigned to: CPU Architecture:Any
Tags: debug

[4 Oct 2014 6:18] Roel Van de Paar
Description:
mysql-5.6.20-linux-x86_64-debug

(gdb) bt
#0  0x00007f263ca85771 in pthread_kill () from /lib64/libpthread.so.0
#1  0x0000000000a9035e in my_write_core (sig=6) at /bzr/mysql-5.6/mysys/stacktrace.c:422
#2  0x0000000000723688 in handle_fatal_signal (sig=6) at /bzr/mysql-5.6/sql/signal_handler.cc:230
#3  <signal handler called>
#4  0x00007f263b8915c9 in raise () from /lib64/libc.so.6
#5  0x00007f263b892cd8 in abort () from /lib64/libc.so.6
#6  0x00007f263b88a536 in __assert_fail_base () from /lib64/libc.so.6
#7  0x00007f263b88a5e2 in __assert_fail () from /lib64/libc.so.6
#8  0x0000000000e40115 in my_well_formed_len_utf32 (cs=0x1721000 <my_charset_utf32_bin>, b=0x7f258a162400 "0", e=0x7f258a162401 "", nchars=16, error=0x7f258a1622f8) at /bzr/mysql-5.6/strings/ctype-ucs2.c:2522
#9  0x000000000082e386 in well_formed_copy_nchars (to_cs=0x1721000 <my_charset_utf32_bin>, to=0x7f256c05e39a "", to_length=64, from_cs=0x1721000 <my_charset_utf32_bin>, from=0x7f258a162400 "0", from_length=1, nchars=16, well_formed_error_pos=0x7f258a1623a8, cannot_convert_error_pos=0x7f258a1623a0, from_end_pos=0x7f258a162398) at /bzr/mysql-5.6/sql/sql_string.cc:974
#10 0x0000000000900d92 in Field_varstring::store (this=0x7f256c05e0f0, from=0x7f258a162400 "0", length=1, cs=0x1721000 <my_charset_utf32_bin>) at /bzr/mysql-5.6/sql/field.cc:7160
#11 0x000000000065b528 in Item::save_in_field (this=0x7f256c005318, field=0x7f256c05e0f0, no_conversions=true) at /bzr/mysql-5.6/sql/item.cc:6265
#12 0x000000000066a25b in Item_result_field::save_in_result_field (this=0x7f256c005318, no_conversions=true) at /bzr/mysql-5.6/sql/item.h:3112
#13 0x000000000079f0d2 in copy_funcs (func_ptr=0x7f256c06a5e8, thd=0x2a5d840) at /bzr/mysql-5.6/sql/sql_executor.cc:553
#14 0x00000000007a460e in end_write (join=0x7f256c005a90, join_tab=0x7f256c006ac0, end_of_records=false) at /bzr/mysql-5.6/sql/sql_executor.cc:2988
#15 0x00000000007a7edc in QEP_tmp_table::put_record (this=0x7f256c006fc8, end_of_records=false) at /bzr/mysql-5.6/sql/sql_executor.cc:4300
#16 0x00000000007a8a5f in QEP_tmp_table::put_record (this=0x7f256c006fc8) at /bzr/mysql-5.6/sql/sql_executor.h:241
#17 0x00000000007a0443 in sub_select_op (join=0x7f256c005a90, join_tab=0x7f256c006ac0, end_of_records=false) at /bzr/mysql-5.6/sql/sql_executor.cc:1067
#18 0x00000000007a1156 in evaluate_join_record (join=0x7f256c005a90, join_tab=0x7f256c0067c0) at /bzr/mysql-5.6/sql/sql_executor.cc:1601
#19 0x00000000007a0738 in sub_select (join=0x7f256c005a90, join_tab=0x7f256c0067c0, end_of_records=false) at /bzr/mysql-5.6/sql/sql_executor.cc:1276
#20 0x00000000007a0005 in do_select (join=0x7f256c005a90) at /bzr/mysql-5.6/sql/sql_executor.cc:933
#21 0x000000000079df61 in JOIN::exec (this=0x7f256c005a90) at /bzr/mysql-5.6/sql/sql_executor.cc:194
#22 0x00000000007fe143 in mysql_execute_select (thd=0x2a5d840, select_lex=0x2a600b8, free_join=true) at /bzr/mysql-5.6/sql/sql_select.cc:1100
#23 0x00000000007fe43f in mysql_select (thd=0x2a5d840, tables=0x7f256c005450, wild_num=0, fields=..., conds=0x0, order=0x2a60280, group=0x2a601b8, having=0x0, select_options=2147879680, result=0x7f256c005a68, unit=0x2a5fa70, select_lex=0x2a600b8) at /bzr/mysql-5.6/sql/sql_select.cc:1221
#24 0x00000000007fc4c7 in handle_select (thd=0x2a5d840, result=0x7f256c005a68, setup_tables_done_option=0) at /bzr/mysql-5.6/sql/sql_select.cc:110
#25 0x00000000007d681b in execute_sqlcom_select (thd=0x2a5d840, all_tables=0x7f256c005450) at /bzr/mysql-5.6/sql/sql_parse.cc:5103
#26 0x00000000007cf5cb in mysql_execute_command (thd=0x2a5d840) at /bzr/mysql-5.6/sql/sql_parse.cc:2649
#27 0x00000000007d8fa4 in mysql_parse (thd=0x2a5d840, rawbuf=0x7f256c004ff0 "SELECT BIN(c1)FROM t1", length=21, parser_state=0x7f258a163eb0) at /bzr/mysql-5.6/sql/sql_parse.cc:6245
#28 0x00000000007cc557 in dispatch_command (command=COM_QUERY, thd=0x2a5d840, packet=0x871d7a1 "", packet_length=21) at /bzr/mysql-5.6/sql/sql_parse.cc:1332
#29 0x00000000007cb646 in do_command (thd=0x2a5d840) at /bzr/mysql-5.6/sql/sql_parse.cc:1034
#30 0x0000000000793a61 in do_handle_one_connection (thd_arg=0x2a5d840) at /bzr/mysql-5.6/sql/sql_connect.cc:982
#31 0x000000000079354a in handle_one_connection (arg=0x2a5d840) at /bzr/mysql-5.6/sql/sql_connect.cc:898
#32 0x0000000000ade888 in pfs_spawn_thread (arg=0x86e0f60) at /bzr/mysql-5.6/storage/perfschema/pfs.cc:1860
#33 0x00007f263ca80df3 in start_thread () from /lib64/libpthread.so.0
#34 0x00007f263b95201d in clone () from /lib64/libc.so.6

How to repeat:
DROP DATABASE test;CREATE DATABASE test;USE test;
SET SESSION sql_buffer_result=1;
CREATE TEMPORARY TABLE t1(c1 DEC);
insert t1 values(0);
set collation_connection=utf32_bin;
SELECT BIN(c1)FROM t1;
[4 Oct 2014 8:08] MySQL Verification Team
To verifier, duplicate of my internal:
Bug 13712655 - MY_WELL_FORMED_LEN_UTF32: ASSERTION `(LENGTH % 4) == 0' FAILED.
[5 Oct 2014 7:48] MySQL Verification Team
Hello Roel,

Thank you for the report.
As Shane pointed out, this is duplicate of internal bug.

Thanks,
Umesh
[5 Oct 2014 7:49] MySQL Verification Team
// extracted from error log

mysqld-debug: /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/strings/ctype-ucs2.c:2522: my_well_formed_len_utf32: Assertion `(length % 4) == 0' failed.
22:43:44 UTC - mysqld got signal 6 ;

//

(gdb) bt
#0  0x0000003bf260c8ac in pthread_kill () from /lib64/libpthread.so.0
#1  0x0000000000afe982 in my_write_core (sig=6) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/mysys/stacktrace.c:422
#2  0x000000000077e6cc in handle_fatal_signal (sig=6) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/signal_handler.cc:230
#3  <signal handler called>
#4  0x0000003bf2232635 in raise () from /lib64/libc.so.6
#5  0x0000003bf2233e15 in abort () from /lib64/libc.so.6
#6  0x0000003bf222b75e in __assert_fail_base () from /lib64/libc.so.6
#7  0x0000003bf222b820 in __assert_fail () from /lib64/libc.so.6
#8  0x0000000000eb87cf in my_well_formed_len_utf32 (cs=0x18ad940, b=0x7f9d3cddd610 "0", e=0x7f9d3cddd611 "", nchars=16, error=0x7f9d3cddd4ec)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/strings/ctype-ucs2.c:2522
#9  0x000000000088e0e6 in well_formed_copy_nchars (to_cs=0x18ad940, to=0x7f9d0c01f95a "", to_length=64, from_cs=0x18ad940, from=0x7f9d3cddd610 "0", from_length=1, nchars=16,
    well_formed_error_pos=0x7f9d3cddd5b8, cannot_convert_error_pos=0x7f9d3cddd5b0, from_end_pos=0x7f9d3cddd5a8)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_string.cc:974
#10 0x000000000096699c in Field_varstring::store (this=0x7f9d0c01f6b0, from=0x7f9d3cddd610 "0", length=1, cs=0x18ad940)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/field.cc:7160
#11 0x00000000006b30ee in Item::save_in_field (this=0x7f9d0c0052f8, field=0x7f9d0c01f6b0, no_conversions=true)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/item.cc:6288
#12 0x00000000006c2357 in Item_result_field::save_in_result_field (this=0x7f9d0c0052f8, no_conversions=true)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/item.h:3112
#13 0x00000000007fc2ba in copy_funcs (func_ptr=0x7f9d0c01d4c8, thd=0x76fd020) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.cc:553
#14 0x00000000008019b4 in end_write (join=0x7f9d0c005a70, join_tab=0x7f9d0c006aa0, end_of_records=false)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.cc:2988
#15 0x0000000000805452 in QEP_tmp_table::put_record (this=0x7f9d0c006fa8, end_of_records=false)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.cc:4300
#16 0x0000000000806011 in QEP_tmp_table::put_record (this=0x7f9d0c006fa8) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.h:241
#17 0x00000000007fd687 in sub_select_op (join=0x7f9d0c005a70, join_tab=0x7f9d0c006aa0, end_of_records=false)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.cc:1067
#18 0x00000000007fe43f in evaluate_join_record (join=0x7f9d0c005a70, join_tab=0x7f9d0c0067a0) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.cc:1601
#19 0x00000000007fd975 in sub_select (join=0x7f9d0c005a70, join_tab=0x7f9d0c0067a0, end_of_records=false)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.cc:1276
#20 0x00000000007fd252 in do_select (join=0x7f9d0c005a70) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.cc:933
#21 0x00000000007fb103 in JOIN::exec (this=0x7f9d0c005a70) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_executor.cc:194
#22 0x000000000085ccec in mysql_execute_select (thd=0x76fd020, select_lex=0x76ff898, free_join=true)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_select.cc:1100
#23 0x000000000085d003 in mysql_select (thd=0x76fd020, tables=0x7f9d0c005430, wild_num=0, fields=..., conds=0x0, order=0x76ffa60, group=0x76ff998, having=0x0, select_options=2147879680,
    result=0x7f9d0c005a48, unit=0x76ff250, select_lex=0x76ff898) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_select.cc:1221
#24 0x000000000085b00f in handle_select (thd=0x76fd020, result=0x7f9d0c005a48, setup_tables_done_option=0)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_select.cc:110
#25 0x0000000000834dfb in execute_sqlcom_select (thd=0x76fd020, all_tables=0x7f9d0c005430) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_parse.cc:5103
#26 0x000000000082d553 in mysql_execute_command (thd=0x76fd020) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_parse.cc:2649
#27 0x00000000008375d1 in mysql_parse (thd=0x76fd020, rawbuf=0x7f9d0c004fd0 "SELECT BIN(c1)FROM t1", length=21, parser_state=0x7f9d3cddf680)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_parse.cc:6245
#28 0x000000000082a3a2 in dispatch_command (command=COM_QUERY, thd=0x76fd020, packet=0x782b4f1 "", packet_length=21)
    at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_parse.cc:1332
#29 0x0000000000829407 in do_command (thd=0x76fd020) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_parse.cc:1034
#30 0x00000000007f0887 in do_handle_one_connection (thd_arg=0x76fd020) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_connect.cc:982
#31 0x00000000007f0358 in handle_one_connection (arg=0x76fd020) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/sql/sql_connect.cc:898
#32 0x0000000000e5c19d in pfs_spawn_thread (arg=0x77a3730) at /export/home/pb2/build/sb_0-13146752-1409933888.09/mysqlcom-pro-5.6.22/storage/perfschema/pfs.cc:1860
#33 0x0000003bf26079d1 in start_thread () from /lib64/libpthread.so.0
#34 0x0000003bf22e886d in clone () from /lib64/libc.so.6
[13 Jan 2015 14:25] Stefan Hinz
Closed by mistake, sorry. Reopened. -Stefan
[4 Jul 2017 4:16] Roel Van de Paar
Another testcase

# mysqld options required for replay:  --sql_mode= --server-id=1
DROP DATABASE test;CREATE DATABASE test;USE test;
CREATE TABLE t1(c1 INT,c2 INT,UNIQUE (c1)) ENGINE=MRG_InnoDB INSERT_METHOD=LAST UNION=(t1);
alter table t1 add b INT;
INSERT INTO t1 VALUES(0,0,0);
SET @@sql_buffer_result=ON;
select group_concat(c1 order by binary c1 separator'')from t1 group by c1 collate utf32_german2_ci;
[11 Apr 2018 15:53] Erlend Dahl
Fixed in 8.0.11 under the heading of

Bug#13712655 	MY_WELL_FORMED_LEN_UTF32: ASSERTION `(LENGTH % 4) == 0' FAILED.