Details
Description
--source include/have_partition.inc
|
|
|
INSTALL SONAME 'ha_federatedx'; |
|
|
CREATE TABLE table_name_long_enough_to_cause_an_assertion_failure ( |
pk integer auto_increment, |
col_int int, |
col_char_12 char(12), |
col_char_12_key char(12), |
col_int_key int, |
primary key (pk DESC), |
key (col_char_12_key), |
key (col_int_key)) PARTITION BY key (pk) partitions 2; |
|
|
eval CREATE SERVER fedlink FOREIGN DATA WRAPPER mysql OPTIONS (USER 'root', HOST '127.0.0.1', DATABASE 'test', PORT $MASTER_MYPORT); |
|
|
CREATE DATABASE fed_db; |
--error ER_SQL_DISCOVER_ERROR
|
CREATE TABLE fed_db.table_name_long_enough_to_cause_an_assertion_failure ENGINE=FEDERATED CONNECTION = 'fedlink/table_name_long_enough_to_cause_an_assertion_failure'; |
SHOW WARNINGS;
|
|
|
DROP DATABASE fed_db; |
DROP TABLE table_name_long_enough_to_cause_an_assertion_failure; |
DROP SERVER fedlink; |
UNINSTALL SONAME 'ha_federatedx'; |
|
10.11 c69ea9b286aceee1e72ffe3713db543633115cbe |
mariadbd: /data/bld/10.11-asan-ubsan/sql/mysqld.cc:3352: void my_message_sql(uint, const char*, myf): Assertion `str[strlen(str)-1] != '\n'' failed.
|
260125 11:50:26 [ERROR] /share8t/bld/10.11-asan-ubsan/sql/mariadbd got signal 6 ;
|
|
|
#9 0x00007f2453045395 in __assert_fail_base (fmt=0x7f24531b9a90 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x55d438de5760 "str[strlen(str)-1] != '\\n'", file=file@entry=0x55d438de14a0 "/data/bld/10.11-asan-ubsan/sql/mysqld.cc", line=line@entry=3352, function=function@entry=0x55d438de5540 "void my_message_sql(uint, const char*, myf)") at ./assert/assert.c:92
|
#10 0x00007f2453053eb2 in __GI___assert_fail (assertion=0x55d438de5760 "str[strlen(str)-1] != '\\n'", file=0x55d438de14a0 "/data/bld/10.11-asan-ubsan/sql/mysqld.cc", line=3352, function=0x55d438de5540 "void my_message_sql(uint, const char*, myf)") at ./assert/assert.c:101
|
#11 0x000055d434e0d29b in my_message_sql (error=<optimized out>, str=0x7f2448fd0ce0 "Engine FEDERATED failed to discover table `fed_db`.`table_name_long_enough_to_cause_an_assertion_failure` with 'CREATE TABLE `table_name_long_enough_to_cause_an_assertion_failure` (\n `pk` int(11) NOT"..., MyFlags=<optimized out>) at /data/bld/10.11-asan-ubsan/sql/mysqld.cc:3352
|
#12 0x000055d4389e3de3 in my_error (nr=1939, MyFlags=<optimized out>) at /data/bld/10.11-asan-ubsan/mysys/my_error.c:124
|
#13 0x000055d435c79875 in TABLE_SHARE::init_from_sql_statement_string (this=this@entry=0x7f2448fd4100, thd=thd@entry=0x62c0000b0218, write=write@entry=true, sql=<optimized out>, sql_length=<optimized out>) at /data/bld/10.11-asan-ubsan/sql/table.cc:3590
|
#14 0x00007f2448157270 in ha_federatedx::discover_assisted (hton=<optimized out>, thd=0x62c0000b0218, table_s=<optimized out>, info=<optimized out>) at /data/bld/10.11-asan-ubsan/storage/federatedx/ha_federatedx.cc:3691
|
#15 0x000055d435a8eed8 in create_table_impl (thd=thd@entry=0x62c0000b0218, ddl_log_state_create=ddl_log_state_create@entry=0x7f2448fd5410, ddl_log_state_rm=<optimized out>, ddl_log_state_rm@entry=0x7f2448fd5450, 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 /data/bld/10.11-asan-ubsan/sql/sql_table.cc:4802
|
#16 0x000055d435a90711 in mysql_create_table_no_lock (thd=thd@entry=0x62c0000b0218, ddl_log_state_create=ddl_log_state_create@entry=0x7f2448fd5410, ddl_log_state_rm=ddl_log_state_rm@entry=0x7f2448fd5450, create_info=create_info@entry=0x7f2448fd59e0, alter_info=alter_info@entry=0x7f2448fd5830, is_trans=is_trans@entry=0x7f2448fd5400, create_table_mode=<optimized out>, table_list=<optimized out>) at /data/bld/10.11-asan-ubsan/sql/sql_table.cc:4955
|
#17 0x000055d435a9219d in mysql_create_table (thd=thd@entry=0x62c0000b0218, create_table=create_table@entry=0x62d00005a6e8, create_info=create_info@entry=0x7f2448fd59e0, alter_info=alter_info@entry=0x7f2448fd5830) at /data/bld/10.11-asan-ubsan/sql/sql_table.cc:5202
|
#18 0x000055d435abb774 in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x62c0000b0218) at /data/bld/10.11-asan-ubsan/sql/sql_table.cc:13159
|
#19 0x000055d4355ac265 in mysql_execute_command (thd=thd@entry=0x62c0000b0218, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/10.11-asan-ubsan/sql/sql_parse.cc:6201
|
#20 0x000055d4355b0ab0 in mysql_parse (thd=thd@entry=0x62c0000b0218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7f2448fd6ab0) at /data/bld/10.11-asan-ubsan/sql/sql_parse.cc:8223
|
#21 0x000055d4355b9e5d in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62c0000b0218, packet=packet@entry=0x62900024e219 "CREATE TABLE fed_db.table_name_long_enough_to_cause_an_assertion_failure ENGINE=FEDERATED CONNECTION = 'fedlink/table_name_long_enough_to_cause_an_assertion_failure'", packet_length=packet_length@entry=165, blocking=blocking@entry=true) at /data/bld/10.11-asan-ubsan/sql/sql_parse.cc:1924
|
#22 0x000055d4355c6b62 in do_command (thd=thd@entry=0x62c0000b0218, blocking=blocking@entry=true) at /data/bld/10.11-asan-ubsan/sql/sql_parse.cc:1434
|
#23 0x000055d435dc1f06 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x608000003338, put_in_cache=put_in_cache@entry=true) at /data/bld/10.11-asan-ubsan/sql/sql_connect.cc:1475
|
#24 0x000055d435dc3063 in handle_one_connection (arg=0x608000003338) at /data/bld/10.11-asan-ubsan/sql/sql_connect.cc:1387
|
#25 0x000055d437744de7 in pfs_spawn_thread (arg=0x617000005b98) at /data/bld/10.11-asan-ubsan/storage/perfschema/pfs.cc:2201
|
#26 0x00007f24530a81c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
|
#27 0x00007f245312885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
|
The test case appears to be deterministic, but it apparently depends on the certain length of the query and/or table definition, so I couldn't prettify it further. The non-debug behavior is ER_SQL_DISCOVER_ERROR with a bunch of underlying errors, including a syntax error (likely due to partitioning):
|
10.11 non-debug |
SHOW WARNINGS;
|
Level Code Message |
Error 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CONNECTION='fedlink/table_name_long_enough_to_cause_an_assertion_failure'' at line 12 |
Error 1939 Engine FEDERATED failed to discover table `fed_db`.`table_name_long_enough_to_cause_an_assertion_failure` with 'CREATE TABLE `table_name_long_enough_to_cause_an_assertion_failure` ( |
`pk` int(11) NOT NULL AUTO_INCREMENT, |
`col_int` int(11) DEFAULT NULL, |
`col_char_12` char(12) DEFAULT NULL, |
`col_char_12_key` char(12) DEFAULT NULL, |
`col_int_key` int(11) DEFAULT NULL, |
PRIMARY KEY (`pk` DESC), |
KEY `col_char_12_key` (`col_char_12_key`), |
KEY `col_int_key` (`col_int_key`) |
)
|
PARTITION BY KEY (`pk`) |
|
|
Error 1429 Unable to connect to foreign data source: |
Error 1030 Got error 168 "Unknown (generic) error from engine" from storage engine FEDERATED |