Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
13.2
-
None
-
Not for Release Notes
Description
Found while testing MDEV-40406, branch bb-13.2-old-mysql50-MDEV-40406. Current database is set under old_mode=MYSQL50_TABLE_NAMES and stays selected after the mode is reset.
let $D= `select @@datadir`; |
--mkdir $D/d-b
|
set old_mode=MYSQL50_TABLE_NAMES; |
use `#mysql50#d-b`; |
set old_mode=default; |
create table x (a int); |
drop table x; |
use test; |
set old_mode=MYSQL50_TABLE_NAMES; |
drop database `#mysql50#d-b`; |
13.1.0-MariaDB-asan-debug-log source revision: 7a9aef7627c61b9c4c0b7be9ea55f1dd76e0db4d
|
mariadbd: /13.2/src/sql/lex_ident.h:221: Lex_ident_db::Lex_ident_db(const LEX_CSTRING&): Assertion `is_null() || is_empty() || !check_name(*this)' failed.
|
 |
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
|
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
|
#2 __GI___pthread_kill (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
|
#3 0x000055e365e1a25a in my_write_core (sig=6) at /13.2/src/mysys/stacktrace.c:424
|
#4 0x000055e363f1c97d in handle_fatal_signal (sig=6) at /13.2/src/sql/signal_handler.cc:298
|
#5 <signal handler called>
|
#6 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
|
#7 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
|
#8 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
|
#9 0x00007d636fa4527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
|
#10 0x00007d636fa288ff in __GI_abort () at ./stdlib/abort.c:79
|
#11 0x00007d636fa2881b in __assert_fail_base (fmt=0x7d636fbd1208 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x55e363165180 "is_null() || is_empty() || !check_name(*this)", file=file@entry=0x55e3631651e0 "/13.2/src/sql/lex_ident.h", line=line@entry=221, function=function@entry=0x55e363165240 "Lex_ident_db::Lex_ident_db(const LEX_CSTRING&)") at ./assert/assert.c:96
|
#12 0x00007d636fa3b517 in __assert_fail (assertion=0x55e363165180 "is_null() || is_empty() || !check_name(*this)", file=0x55e3631651e0 "/13.2/src/sql/lex_ident.h", line=221, function=0x55e363165240 "Lex_ident_db::Lex_ident_db(const LEX_CSTRING&)") at ./assert/assert.c:105
|
#13 0x000055e363f65450 in Lex_ident_db::Lex_ident_db (this=0x7d63636c9720, str=...) at /13.2/src/sql/lex_ident.h:221
|
#14 0x000055e363f675e6 in TABLE_LIST::init_one_table (this=0x7d6363cc9840, db_arg=<optimized out>, table_name_arg=0x52d0000f05f8, alias_arg=0x0, lock_type_arg=<optimized out>) at /13.2/src/sql/table.h:2562
|
#15 0x000055e364b46d20 in create_table_impl (thd=thd@entry=0x52c000080220, ddl_log_state_create=ddl_log_state_create@entry=0x7d63638d2640, ddl_log_state_rm=ddl_log_state_rm@entry=0x7d63638d2680, orig_db=..., orig_table_name=..., db=..., table_name=..., path=..., options=..., create_info=<optimized out>, alter_info=<optimized out>, create_table_mode=<optimized out>, is_trans=<optimized out>, key_info=<optimized out>, key_count=<optimized out>, frm=<optimized out>) at /13.2/src/sql/sql_table.cc:4800
|
#16 0x000055e364b48abe in mysql_create_table_no_lock (thd=thd@entry=0x52c000080220, ddl_log_state_create=ddl_log_state_create@entry=0x7d63638d2640, ddl_log_state_rm=ddl_log_state_rm@entry=0x7d63638d2680, create_info=create_info@entry=0x7d6363a54350, alter_info=alter_info@entry=0x7d6363a54190, is_trans=is_trans@entry=0x7d63638d2630, create_table_mode=<optimized out>, table_list=<optimized out>) at /13.2/src/sql/sql_table.cc:5083
|
#17 0x000055e364b4c1fb in mysql_create_table (thd=thd@entry=0x52c000080220, create_table=create_table@entry=0x52d0000f05c8, create_info=create_info@entry=0x7d6363a54350, alter_info=alter_info@entry=0x7d6363a54190) at /13.2/src/sql/sql_table.cc:5329
|
#18 0x000055e364b4ecb6 in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x52c000080220) at /13.2/src/sql/sql_table.cc:13923
|
#19 0x000055e364876deb in mysql_execute_command (thd=thd@entry=0x52c000080220, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /13.2/src/sql/sql_parse.cc:5908
|
#20 0x000055e364878c4b in mysql_parse (thd=thd@entry=0x52c000080220, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7d6363cc71b0) at /13.2/src/sql/sql_parse.cc:7959
|
#21 0x000055e36487c8ff in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x52c000080220, packet=packet@entry=0x52900028f221 "create table x (a int)", packet_length=packet_length@entry=22, blocking=blocking@entry=true) at /13.2/src/sql/sql_parse.cc:1903
|
#22 0x000055e36488125e in do_command (thd=thd@entry=0x52c000080220, blocking=blocking@entry=true) at /13.2/src/sql/sql_parse.cc:1437
|
#23 0x000055e364d6f761 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x50b000004cb0, put_in_cache=put_in_cache@entry=true) at /13.2/src/sql/sql_connect.cc:1514
|
#24 0x000055e364d6fb67 in handle_one_connection (arg=arg@entry=0x50b000004cb0) at /13.2/src/sql/sql_connect.cc:1426
|
#25 0x00007d6370a5ea42 in asan_thread_start (arg=0x7d6364af7000) at ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
|
#26 0x00007d636fa9cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
|
#27 0x00007d636fb29ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
|
Attachments
Issue Links
- relates to
-
MDEV-40406 hide #mysql50# prefix support behind the old mode
-
- In Testing
-
-
MDEV-42188 Assertion `! is_set() || m_can_overwrite_status ...' failed in Diagnostics_area::set_error_status when SET STATEMENT fails to restore
-
- Open
-
-
MDEV-42189 Assertion `is_null() || is_empty() || !check_name(*this)' failed in Lex_ident_db::Lex_ident_db after USE `#mysql50#db` and connection reset
-
- Open
-
-
MDEV-42190 Replica crashes with assertion `is_null() || is_empty() || !check_name(*this)' in Lex_ident_db::Lex_ident_db on an event with default database `#mysql50#db`
-
- Closed
-
-
MDEV-42191 SET old_mode without MYSQL50_TABLE_NAMES fails when the current database name starts with #
-
- Closed
-
-
MDEV-42192 Assertion `is_null() || is_empty() || !check_name(*this)' failed in Lex_ident_db::Lex_ident_db after USE `#mysql50#db` and a failed COM_CHANGE_USER
-
- Open
-
-
MDEV-42193 Assertion `is_null() || is_empty() || !check_name(*this)' failed in Lex_ident_db::Lex_ident_db on EXECUTE of a prepared CALL of a routine in a `#mysql50#` database after old_mode reset
-
- Open
-
-
MDEV-42194 Assertion `is_null() || is_empty() || !check_name(*this)' failed in Lex_ident_db::Lex_ident_db in mysql_opt_change_db when a trigger of a table in a `#mysql50#` database fires after old_mode reset
-
- Open
-