Bug #74221 | ctype-ucs2.c:1545: my_strnncollsp_utf16_bin: Assertion `(slen % 2) == 0' failed. | ||
---|---|---|---|
Submitted: | 4 Oct 2014 6:23 | Modified: | 11 Apr 2018 16:17 |
Reporter: | Roel Van de Paar | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Charsets | Severity: | S6 (Debug Builds) |
Version: | 5.6.20 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | debug |
[4 Oct 2014 6:23]
Roel Van de Paar
[4 Oct 2014 6:26]
Roel Van de Paar
Another similar, but not the same, case ctype-ucs2.c:1346: my_strnncollsp_utf16: Assertion `(tlen % 2) == 0' failed. DROP DATABASE test;CREATE DATABASE test;USE test; SET NAMES utf8,collation_connection='utf16le_general_ci'; select row('',1.5,3)IN (row(3,NULL,3),row('',1.5,3),row(1,3,3));
[4 Oct 2014 6:26]
Roel Van de Paar
Another similar, but not the same, case ctype-ucs2.c:2653: my_strnncollsp_utf32_bin: Assertion `(tlen % 4) == 0' failed. DROP DATABASE test;CREATE DATABASE test;USE test; set collation_connection=utf32_bin; select row('',1.5,3)IN (row(3,NULL,3),row('',1.5,3),row(1,3,3));
[4 Oct 2014 8:11]
MySQL Verification Team
Probably a duplicate of internal: Bug 18487049 - ASSERTION FAILED: (SLEN % 4) == 0 IN MY_STRNNCOLLSP_UTF32
[4 Oct 2014 15:51]
MySQL Verification Team
and probably already fixed: 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 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; ERROR 1008 (HY000): Can't drop database 'test'; database doesn't exist Query OK, 1 row affected (0.01 sec) Database changed mysql 5.6 > SET NAMES utf8,collation_connection=utf16le_bin; Query OK, 0 rows affected (0.05 sec) mysql 5.6 > select row('',1.5,3)IN (row(1,2,3),row('',1.5,3),row('','','')); +----------------------------------------------------------+ | row('',1.5,3)IN (row(1,2,3),row('',1.5,3),row('','','')) | +----------------------------------------------------------+ | 1 | +----------------------------------------------------------+ 1 row in set, 2 warnings (0.03 sec) mysql 5.6 > SHOW WARNINGS; +---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Truncated incorrect DECIMAL value: '' | | Warning | 1292 | Truncated incorrect INTEGER value: '' | +---------+------+---------------------------------------+ 2 rows in set (0.00 sec)
[4 Oct 2014 15:58]
MySQL Verification Team
Sorry I didn't noticed only debug version is affected: 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 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, 0 rows affected (0.06 sec) Query OK, 1 row affected (0.00 sec) Database changed mysql 5.6 > SET NAMES utf8,collation_connection=utf16le_bin; Query OK, 0 rows affected (0.00 sec) mysql 5.6 > select row('',1.5,3)IN (row(1,2,3),row('',1.5,3),row('','','')); ERROR 2013 (HY000): Lost connection to MySQL server during query
[6 Oct 2014 12:53]
MySQL Verification Team
Thank you for the bug report. Similar call stack with internal bug pointed by Shane: Thread pointer: 0x16a46bf0 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... 13f5c4155 mysqld.exe!my_sigabrt_handler()[my_thr_init.c:458] 13fb99f4f mysqld.exe!raise()[winsig.c:594] 13fba6850 mysqld.exe!abort()[abort.c:82] 13fb9751b mysqld.exe!_wassert()[assert.c:380] 13fb0baec mysqld.exe!my_strnncollsp_utf16_bin()[ctype-ucs2.c:1545] 13f0fbe73 mysqld.exe!sortcmp()[sql_string.cc:758] 13f0c398d mysqld.exe!cmp_item_sort_string_in_static::compare()[item_cmpfunc.h:1300] 13f0b5b96 mysqld.exe!cmp_item_row::compare()[item_cmpfunc.cc:4252] 13f0bdbdd mysqld.exe!cmp_row()[item_cmpfunc.cc:3866] 13f5e488b mysqld.exe!my_qsort2()[mf_qsort.c:131] 13f0c64d8 mysqld.exe!in_vector::sort()[item_cmpfunc.h:931] 13f0b5174 mysqld.exe!Item_func_in::fix_length_and_dec()[item_cmpfunc.cc:4615] 13f170173 mysqld.exe!Item_func::fix_fields()[item_func.cc:232] 13f0b3fdc mysqld.exe!Item_func_in::fix_fields()[item_cmpfunc.cc:4362] 13f27050c mysqld.exe!setup_fields()[sql_base.cc:8304] 13f46e7fe mysqld.exe!JOIN::prepare()[sql_resolver.cc:169] 13f40ea5e mysqld.exe!mysql_prepare_select()[sql_select.cc:1054] 13f401999 mysqld.exe!mysql_select()[sql_select.cc:1180] 13f40172d mysqld.exe!handle_select()[sql_select.cc:110] 13f212783 mysqld.exe!execute_sqlcom_select()[sql_parse.cc:5103] 13f204375 mysqld.exe!mysql_execute_command()[sql_parse.cc:2649] 13f202e02 mysqld.exe!mysql_parse()[sql_parse.cc:6357] 13f20c33e mysqld.exe!dispatch_command()[sql_parse.cc:1335] 13f20b4a2 mysqld.exe!do_command()[sql_parse.cc:1034] 13f25c082 mysqld.exe!do_handle_one_connection()[sql_connect.cc:982] 13f25beb2 mysqld.exe!handle_one_connection()[sql_connect.cc:899] 13f5c26d6 mysqld.exe!pthread_start()[my_winthread.c:62] 13fbaa775 mysqld.exe!_callthreadstartex()[threadex.c:376] 13fbaa9c7 mysqld.exe!_threadstartex()[threadex.c:359] 771059ed kernel32.dll!BaseThreadInitThunk() 7733c541 ntdll.dll!RtlUserThreadStart() Trying to get some variables. Some pointers may be invalid and cause the dump to abort. Query (141a0db0): select row('',1.5,3)IN (row(1,2,3),row('',1.5,3),row('','',''))Connection ID (thread ID): 1 Status: NOT_KILLED
[12 May 2017 21:41]
Roel Van de Paar
Please do not close an external bug until the internal one is fixed.
[11 Apr 2018 16:17]
Erlend Dahl
Fixed in 8.0.0 under the heading of Bug#18487049 ASSERTION FAILED: (SLEN % 4) == 0 IN MY_STRNNCOLLSP_UTF32