[MDEV-33223] Assertion `dst_size > 4' failed in size_t Identifier_chain2::make_sep_name_opt_casedn(char*, size_t, int, bool) const Created: 2024-01-11  Updated: 2024-01-11  Resolved: 2024-01-11

Status: Closed
Project: MariaDB Server
Component/s: Character Sets
Affects Version/s: N/A
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Ramesh Sivaraman Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: debug

Issue Links:
Problem/Incident
is caused by MDEV-31531 Remove my_casedn_str() and my_caseup_... In Testing

 Description   

CREATE DATABASE x;
USE x;
CREATE TABLE t (i INT, j INT, CONSTRAINT fk2 FOREIGN KEY(i) REFERENCES p (i)) ;

Leads to

11.4.0 da5462791967f0fe81822e72eaaa7e92a44c58ca (Debug)

mariadbd: /test/mtest/MDEV-31531/11.4_dbg/sql/lex_ident.h:245: size_t Identifier_chain2::make_sep_name_opt_casedn(char*, size_t, int, bool) const: Assertion `dst_size > 4' failed.

11.4.0 da5462791967f0fe81822e72eaaa7e92a44c58ca (Debug)

Core was generated by `/test/mtest/MDEV-31531/MD010124-mariadb-11.4.0-linux-x86_64-dbg/bin/mariadbd --'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
[Current thread is 1 (Thread 0x1463900dd700 (LWP 2290051))]
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00001463932ad859 in __GI_abort () at abort.c:79
#2  0x00001463932ad729 in __assert_fail_base (fmt=0x146393443588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55c41c76c1ff "dst_size > 4", file=0x55c41c51b0f0 "/test/mtest/MDEV-31531/11.4_dbg/sql/lex_ident.h", line=245, function=<optimized out>) at assert.c:92
#3  0x00001463932befd6 in __GI___assert_fail (assertion=assertion@entry=0x55c41c76c1ff "dst_size > 4", file=file@entry=0x55c41c51b0f0 "/test/mtest/MDEV-31531/11.4_dbg/sql/lex_ident.h", line=line@entry=245, function=function@entry=0x55c41c771180 "size_t Identifier_chain2::make_sep_name_opt_casedn(char*, size_t, int, bool) const") at assert.c:101
#4  0x000055c41c20339b in Identifier_chain2::make_sep_name_opt_casedn (casedn=false, sep=47, dst_size=4, dst=0x14634001f008 "", this=0x1463900d5810) at /test/mtest/MDEV-31531/11.4_dbg/sql/lex_ident.h:245
#5  dict_get_referenced_table (name=name@entry=0x1463900d80d8 "x/t", database_name=<optimized out>, database_name_len=<optimized out>, table_name=0x1463900d5970 "p", table_name_len=<optimized out>, table=table@entry=0x14634001efc0, heap=0x1463400204a8, from_cs=0x55c41cf6bb40 <my_charset_utf8mb4_general_ci>) at /test/mtest/MDEV-31531/11.4_dbg/storage/innobase/dict/dict0dict.cc:3285
#6  0x000055c41bf283ae in create_table_info_t::create_foreign_keys (this=this@entry=0x1463900d80b0) at /test/mtest/MDEV-31531/11.4_dbg/storage/innobase/handler/ha_innodb.cc:12431
#7  0x000055c41bf29338 in create_table_info_t::create_table (this=this@entry=0x1463900d80b0, create_fk=create_fk@entry=true) at /test/mtest/MDEV-31531/11.4_dbg/storage/innobase/handler/ha_innodb.cc:12768
#8  0x000055c41bf29fd3 in ha_innobase::create (this=<optimized out>, name=0x1463900d9bd0 "./x/t", form=0x1463900d8660, create_info=0x1463900da250, file_per_table=<optimized out>, trx=0x14639099d680, trx@entry=0x0) at /test/mtest/MDEV-31531/11.4_dbg/storage/innobase/handler/ha_innodb.cc:13172
#9  0x000055c41bf2b305 in ha_innobase::create (this=<optimized out>, name=<optimized out>, form=<optimized out>, create_info=<optimized out>) at /test/mtest/MDEV-31531/11.4_dbg/storage/innobase/handler/ha_innodb.cc:13220
#10 0x000055c41bba036d in handler::ha_create (this=0x14634001d6d0, name=0x1463900d9bd0 "./x/t", form=form@entry=0x1463900d8660, info_arg=info_arg@entry=0x1463900da250) at /test/mtest/MDEV-31531/11.4_dbg/sql/handler.cc:5692
#11 0x000055c41bba1073 in ha_create_table (thd=thd@entry=0x146340000d48, path=<optimized out>, db=0x146340013d68 "x", table_name=0x146340013620 "t", create_info=create_info@entry=0x1463900da250, frm=frm@entry=0x1463900d9bc0, skip_frm_file=false) at /test/mtest/MDEV-31531/11.4_dbg/sql/handler.cc:6161
#12 0x000055c41b95fdf1 in create_table_impl (thd=thd@entry=0x146340000d48, ddl_log_state_create=ddl_log_state_create@entry=0x1463900d9ed0, ddl_log_state_rm=<optimized out>, ddl_log_state_rm@entry=0x1463900da0e0, orig_db=@0x146340013670: {str = 0x146340013d68 "x", length = 1}, orig_table_name=@0x146340013680: {str = 0x146340013620 "t", length = 1}, db=@0x146340013670: {str = 0x146340013d68 "x", length = 1}, table_name=@0x146340013680: {str = 0x146340013620 "t", length = 1}, path=@0x1463900d9bb0: {str = 0x1463900d9bd0 "./x/t", length = 5}, options=<optimized out>, create_info=0x1463900da250, alter_info=0x1463900d9f70, create_table_mode=0, is_trans=0x1463900d9eb0, key_info=0x1463900d9ba8, key_count=0x1463900d9ba4, frm=0x1463900d9bc0) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_table.cc:4652
#13 0x000055c41b96025d in mysql_create_table_no_lock (thd=thd@entry=0x146340000d48, ddl_log_state_create=ddl_log_state_create@entry=0x1463900d9ed0, ddl_log_state_rm=ddl_log_state_rm@entry=0x1463900da0e0, create_info=create_info@entry=0x1463900da250, alter_info=alter_info@entry=0x1463900d9f70, is_trans=is_trans@entry=0x1463900d9eb0, create_table_mode=0, table_list=0x146340013658) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_table.cc:4753
#14 0x000055c41b9623bc in mysql_create_table (alter_info=0x1463900d9f70, create_info=0x1463900da250, create_table=0x146340013658, thd=0x146340000d48) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_table.cc:4934
#15 Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x146340000d48) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_table.cc:13043
#16 0x000055c41b878702 in mysql_execute_command (thd=thd@entry=0x146340000d48, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_parse.cc:5786
#17 0x000055c41b86030e in mysql_parse (thd=thd@entry=0x146340000d48, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1463900dc2b0) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_parse.cc:7798
#18 0x000055c41b86e23e in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x146340000d48, packet=packet@entry=0x14634000b1b9 "CREATE TABLE t (i INT, j INT, CONSTRAINT fk2 FOREIGN KEY(i) REFERENCES p (i))", packet_length=packet_length@entry=77, blocking=blocking@entry=true) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_class.h:1593
#19 0x000055c41b8709a5 in do_command (thd=0x146340000d48, blocking=blocking@entry=true) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_parse.cc:1406
#20 0x000055c41b9ec75b in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55c41e3376d8, put_in_cache=put_in_cache@entry=true) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_connect.cc:1417
#21 0x000055c41b9ecd10 in handle_one_connection (arg=arg@entry=0x55c41e3376d8) at /test/mtest/MDEV-31531/11.4_dbg/sql/sql_connect.cc:1319
#22 0x000055c41be5b814 in pfs_spawn_thread (arg=0x55c41e3705a8) at /test/mtest/MDEV-31531/11.4_dbg/storage/perfschema/pfs.cc:2201
#23 0x00001463937be609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#24 0x00001463933aa133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95



 Comments   
Comment by Alexander Barkov [ 2024-01-11 ]

Fixed in the stage tree bb-11.4-bar-MDEV-31531

Generated at Thu Feb 08 10:37:18 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.