|
Test cases:
--source include/have_partition.inc
|
|
CREATE TABLE t1 (i INT, f1 VARCHAR(512), f2 VARCHAR(512), FULLTEXT (f1)) ENGINE=MyISAM PARTITION BY HASH (i);
|
SELECT * FROM t1 WHERE MATCH (f1) AGAINST ('foo');
|
SELECT * FROM t1 WHERE MATCH (f2) AGAINST ('bar' IN BOOLEAN MODE) ;
|
|
# Cleanup
|
DROP TABLE t1;
|
|
10.3 def2ac209
|
mysqld: /data/src/10.3/sql/handler.h:3096: int handler::ha_rnd_end(): Assertion `inited==RND' failed.
|
181112 0:15:19 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007f50707c4ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
|
#8 0x000055c4eec71e00 in handler::ha_rnd_end (this=0x7f5058098218) at /data/src/10.3/sql/handler.h:3096
|
#9 0x000055c4ef763f13 in ha_partition::rnd_end (this=0x7f50580979b8) at /data/src/10.3/sql/ha_partition.cc:4998
|
#10 0x000055c4ef763c88 in ha_partition::rnd_init (this=0x7f50580979b8, scan=true) at /data/src/10.3/sql/ha_partition.cc:4932
|
#11 0x000055c4eecc96d9 in handler::ha_rnd_init (this=0x7f50580979b8, scan=true) at /data/src/10.3/sql/handler.h:3089
|
#12 0x000055c4ef00349d in handler::ha_rnd_init_with_error (this=0x7f50580979b8, scan=true) at /data/src/10.3/sql/handler.cc:2981
|
#13 0x000055c4ef1826be in init_read_record (info=0x7f5058017728, thd=0x7f5058000b00, table=0x7f5058096d70, select=0x7f5058017fb0, filesort=0x0, use_record_cache=1, print_error=true, disable_rr_cache=false) at /data/src/10.3/sql/records.cc:298
|
#14 0x000055c4eed81787 in join_init_read_record (tab=0x7f5058017660) at /data/src/10.3/sql/sql_select.cc:20313
|
#15 0x000055c4eed7f470 in sub_select (join=0x7f50580159c0, join_tab=0x7f5058017660, end_of_records=false) at /data/src/10.3/sql/sql_select.cc:19381
|
#16 0x000055c4eed7ea0c in do_select (join=0x7f50580159c0, procedure=0x0) at /data/src/10.3/sql/sql_select.cc:18924
|
#17 0x000055c4eed57603 in JOIN::exec_inner (this=0x7f50580159c0) at /data/src/10.3/sql/sql_select.cc:4028
|
#18 0x000055c4eed56a44 in JOIN::exec (this=0x7f50580159c0) at /data/src/10.3/sql/sql_select.cc:3822
|
#19 0x000055c4eed57ce4 in mysql_select (thd=0x7f5058000b00, tables=0x7f5058014f28, wild_num=1, fields=..., conds=0x7f5058015778, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7f5058015998, unit=0x7f50580049b0, select_lex=0x7f5058005120) at /data/src/10.3/sql/sql_select.cc:4227
|
#20 0x000055c4eed49c7c in handle_select (thd=0x7f5058000b00, lex=0x7f50580048e8, result=0x7f5058015998, setup_tables_done_option=0) at /data/src/10.3/sql/sql_select.cc:385
|
#21 0x000055c4eed14873 in execute_sqlcom_select (thd=0x7f5058000b00, all_tables=0x7f5058014f28) at /data/src/10.3/sql/sql_parse.cc:6546
|
#22 0x000055c4eed0aee3 in mysql_execute_command (thd=0x7f5058000b00) at /data/src/10.3/sql/sql_parse.cc:3767
|
#23 0x000055c4eed1882b in mysql_parse (thd=0x7f5058000b00, rawbuf=0x7f5058014cd8 "SELECT * FROM t1 WHERE MATCH (f2) AGAINST ('bar' IN BOOLEAN MODE)", length=65, parser_state=0x7f506a96b5f0, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:8090
|
#24 0x000055c4eed059f1 in dispatch_command (command=COM_QUERY, thd=0x7f5058000b00, packet=0x7f505800b1e1 "", packet_length=67, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1850
|
#25 0x000055c4eed04415 in do_command (thd=0x7f5058000b00) at /data/src/10.3/sql/sql_parse.cc:1395
|
#26 0x000055c4eee6be9c in do_handle_one_connection (connect=0x55c4f2702d20) at /data/src/10.3/sql/sql_connect.cc:1402
|
#27 0x000055c4eee6bc20 in handle_one_connection (arg=0x55c4f2702d20) at /data/src/10.3/sql/sql_connect.cc:1308
|
#28 0x000055c4ef2ff999 in pfs_spawn_thread (arg=0x55c4f274f940) at /data/src/10.3/storage/perfschema/pfs.cc:1862
|
#29 0x00007f507249b494 in start_thread (arg=0x7f506a96c700) at pthread_create.c:333
|
#30 0x00007f507088193f in clone () from /lib/x86_64-linux-gnu/libc.so.6
|
|
Query (0x7f5058014cd8): SELECT * FROM t1 WHERE MATCH (f2) AGAINST ('bar' IN BOOLEAN MODE)
|
Connection ID (thread ID): 4
|
Status: NOT_KILLED
|
--source include/have_partition.inc
|
|
CREATE TABLE t1 (i INT, f1 VARCHAR(512), f2 VARCHAR(512), FULLTEXT (f1)) ENGINE=MyISAM PARTITION BY HASH (i);
|
SELECT * FROM t1 WHERE MATCH (f1) AGAINST ('foo');
|
UPDATE t1 SET i=2 WHERE MATCH (f2) AGAINST ('bar' IN BOOLEAN MODE) ;
|
|
# Cleanup
|
DROP TABLE t1;
|
mysqld: /data/src/10.3/sql/handler.h:3096: int handler::ha_rnd_end(): Assertion `inited==RND' failed.
|
181112 0:16:22 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007fa385947ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
|
#8 0x000055e56209de00 in handler::ha_rnd_end (this=0x7fa364098218) at /data/src/10.3/sql/handler.h:3096
|
#9 0x000055e562b8ff13 in ha_partition::rnd_end (this=0x7fa3640979b8) at /data/src/10.3/sql/ha_partition.cc:4998
|
#10 0x000055e562b8fc88 in ha_partition::rnd_init (this=0x7fa3640979b8, scan=true) at /data/src/10.3/sql/ha_partition.cc:4932
|
#11 0x000055e5620f56d9 in handler::ha_rnd_init (this=0x7fa3640979b8, scan=true) at /data/src/10.3/sql/handler.h:3089
|
#12 0x000055e56242f49d in handler::ha_rnd_init_with_error (this=0x7fa3640979b8, scan=true) at /data/src/10.3/sql/handler.cc:2981
|
#13 0x000055e5625ae6be in init_read_record (info=0x7fa3802ee170, thd=0x7fa364000b00, table=0x7fa364096d70, select=0x7fa364015bb8, filesort=0x0, use_record_cache=0, print_error=true, disable_rr_cache=false) at /data/src/10.3/sql/records.cc:298
|
#14 0x000055e562230b93 in mysql_update (thd=0x7fa364000b00, table_list=0x7fa364014e10, fields=..., values=..., conds=0x7fa364015830, order_num=0, order=0x0, limit=18446744073709551615, handle_duplicates=DUP_ERROR, ignore=false, found_return=0x7fa3802ee6f0, updated_return=0x7fa3802ee7b0) at /data/src/10.3/sql/sql_update.cc:725
|
#15 0x000055e56213940f in mysql_execute_command (thd=0x7fa364000b00) at /data/src/10.3/sql/sql_parse.cc:4579
|
#16 0x000055e56214482b in mysql_parse (thd=0x7fa364000b00, rawbuf=0x7fa364014cd8 "UPDATE t1 SET i=2 WHERE MATCH (f2) AGAINST ('bar' IN BOOLEAN MODE)", length=66, parser_state=0x7fa3802ef5f0, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:8090
|
#17 0x000055e5621319f1 in dispatch_command (command=COM_QUERY, thd=0x7fa364000b00, packet=0x7fa36400b1e1 "UPDATE t1 SET i=2 WHERE MATCH (f2) AGAINST ('bar' IN BOOLEAN MODE) ", packet_length=68, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1850
|
#18 0x000055e562130415 in do_command (thd=0x7fa364000b00) at /data/src/10.3/sql/sql_parse.cc:1395
|
#19 0x000055e562297e9c in do_handle_one_connection (connect=0x55e565f28d00) at /data/src/10.3/sql/sql_connect.cc:1402
|
#20 0x000055e562297c20 in handle_one_connection (arg=0x55e565f28d00) at /data/src/10.3/sql/sql_connect.cc:1308
|
#21 0x000055e56272b999 in pfs_spawn_thread (arg=0x55e565f75920) at /data/src/10.3/storage/perfschema/pfs.cc:1862
|
#22 0x00007fa38761e494 in start_thread (arg=0x7fa3802f0700) at pthread_create.c:333
|
#23 0x00007fa385a0493f in clone () from /lib/x86_64-linux-gnu/libc.so.6
|
|
Query (0x7fa364014cd8): UPDATE t1 SET i=2 WHERE MATCH (f2) AGAINST ('bar' IN BOOLEAN MODE)
|
Connection ID (thread ID): 4
|
Status: NOT_KILLED
|
|
|
Just another variant of SQL showing the problem on 10.3
--source include/have_partition.inc
|
--disable_abort_on_error
|
|
CREATE TABLE t1 ( pk INTEGER, col1 VARCHAR(30), FULLTEXT KEY (col1));
|
ALTER TABLE t1 ADD SYSTEM VERSIONING;
|
ALTER TABLE t1 PARTITION BY system_time (PARTITION ver_p0 HISTORY, PARTITION ver_pn CURRENT);
|
SELECT 1 FROM t1 WHERE MATCH (col1) AGAINST ('b');
|
# The next statement leads to the assert
|
ALTER TABLE t1 PARTITION BY system_time (PARTITION ver_p0 HISTORY, PARTITION ver_pn CURRENT);
|
|
--enable_abort_on_error
|
DROP TABLE t1;
|
|
|
Yet another test case. The difference with all previous ones is that this one doesn't get into handler::ha_rnd_init_with_error.
--source include/have_partition.inc
|
|
CREATE TABLE t1 (id INT, f TEXT, FULLTEXT(f)) PARTITION BY HASH(id);
|
SELECT * FROM t1 WHERE MATCH (f) AGAINST ('foo' IN BOOLEAN MODE);
|
|
SELECT * FROM t1;
|
|
# Cleanup
|
DROP TABLE t1;
|
|
10.3 09bd2138
|
mysqld: /data/src/10.3/sql/handler.h:3107: int handler::ha_rnd_end(): Assertion `inited==RND' failed.
|
190228 0:17:09 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007fd134c20ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
|
#8 0x00005577be905812 in handler::ha_rnd_end (this=0x7fd114098858) at /data/src/10.3/sql/handler.h:3107
|
#9 0x00005577bf3febb9 in ha_partition::rnd_end (this=0x7fd114097ff8) at /data/src/10.3/sql/ha_partition.cc:4999
|
#10 0x00005577bf3fe92e in ha_partition::rnd_init (this=0x7fd114097ff8, scan=true) at /data/src/10.3/sql/ha_partition.cc:4933
|
#11 0x00005577be95d30b in handler::ha_rnd_init (this=0x7fd114097ff8, scan=true) at /data/src/10.3/sql/handler.h:3100
|
#12 0x00005577beca02c5 in handler::read_first_row (this=0x7fd114097ff8, buf=0x7fd114006a30 "\377", primary_key=64) at /data/src/10.3/sql/handler.cc:3056
|
#13 0x00005577bea2cb77 in handler::ha_read_first_row (this=0x7fd114097ff8, buf=0x7fd114006a30 "\377", primary_key=64) at /data/src/10.3/sql/sql_class.h:6404
|
#14 0x00005577bea14b9f in join_read_system (tab=0x7fd114016038) at /data/src/10.3/sql/sql_select.cc:19928
|
#15 0x00005577bea1472a in join_read_const_table (thd=0x7fd114000b00, tab=0x7fd114016038, pos=0x7fd1140165f0) at /data/src/10.3/sql/sql_select.cc:19824
|
#16 0x00005577be9ed523 in make_join_statistics (join=0x7fd114015630, tables_list=..., keyuse_array=0x7fd114015920) at /data/src/10.3/sql/sql_select.cc:4646
|
#17 0x00005577be9e3e2d in JOIN::optimize_inner (this=0x7fd114015630) at /data/src/10.3/sql/sql_select.cc:1888
|
#18 0x00005577be9e2485 in JOIN::optimize (this=0x7fd114015630) at /data/src/10.3/sql/sql_select.cc:1451
|
#19 0x00005577be9ec0ac in mysql_select (thd=0x7fd114000b00, tables=0x7fd114014ed8, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7fd114015608, unit=0x7fd1140049b8, select_lex=0x7fd114005128) at /data/src/10.3/sql/sql_select.cc:4225
|
#20 0x00005577be9de06e in handle_select (thd=0x7fd114000b00, lex=0x7fd1140048f0, result=0x7fd114015608, setup_tables_done_option=0) at /data/src/10.3/sql/sql_select.cc:385
|
#21 0x00005577be9a8aa6 in execute_sqlcom_select (thd=0x7fd114000b00, all_tables=0x7fd114014ed8) at /data/src/10.3/sql/sql_parse.cc:6551
|
#22 0x00005577be99f117 in mysql_execute_command (thd=0x7fd114000b00) at /data/src/10.3/sql/sql_parse.cc:3772
|
#23 0x00005577be9aca5f in mysql_parse (thd=0x7fd114000b00, rawbuf=0x7fd114014ce8 "SELECT * FROM t1", length=16, parser_state=0x7fd12ada65f0, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:8095
|
#24 0x00005577be999c13 in dispatch_command (command=COM_QUERY, thd=0x7fd114000b00, packet=0x7fd11400b1f1 "SELECT * FROM t1", packet_length=16, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1854
|
#25 0x00005577be9985eb in do_command (thd=0x7fd114000b00) at /data/src/10.3/sql/sql_parse.cc:1396
|
#26 0x00005577beb00cfd in do_handle_one_connection (connect=0x5577c2681f80) at /data/src/10.3/sql/sql_connect.cc:1403
|
#27 0x00005577beb00a81 in handle_one_connection (arg=0x5577c2681f80) at /data/src/10.3/sql/sql_connect.cc:1309
|
#28 0x00005577bef9cc15 in pfs_spawn_thread (arg=0x5577c268a670) at /data/src/10.3/storage/perfschema/pfs.cc:1862
|
#29 0x00007fd1368f7494 in start_thread (arg=0x7fd12ada7700) at pthread_create.c:333
|
#30 0x00007fd134cdd93f in clone () from /lib/x86_64-linux-gnu/libc.so.6
|
|
|
Yet another one, similar to Matthias'es, but without versioning and with the stack trace:
--source include/have_partition.inc
|
|
CREATE TABLE t1 (
|
pk INT PRIMARY KEY,
|
c VARCHAR(64),
|
FULLTEXT INDEX (c)
|
) PARTITION BY HASH(pk) PARTITIONS 2;
|
|
SELECT * FROM t1 WHERE MATCH (c) AGAINST ('foo');
|
ALTER TABLE t1 FORCE;
|
|
# Cleanup
|
DROP TABLE t1;
|
|
10.3 462d6893
|
mysqld: /data/src/10.3/sql/handler.h:3105: int handler::ha_rnd_end(): Assertion `inited==RND' failed.
|
190518 17:15:37 [ERROR] mysqld got signal 6 ;
|
|
#7 0x00007f5e5755af12 in __GI___assert_fail (assertion=0x563a7bfcaebd "inited==RND", file=0x563a7bfcae5f "/data/src/10.3/sql/handler.h", line=3105, function=0x563a7bfcf310 <handler::ha_rnd_end()::__PRETTY_FUNCTION__> "int handler::ha_rnd_end()") at assert.c:101
|
#8 0x0000563a7b3e252e in handler::ha_rnd_end (this=0x7f5e40097148) at /data/src/10.3/sql/handler.h:3105
|
#9 0x0000563a7bed5064 in ha_partition::rnd_end (this=0x7f5e400968e8) at /data/src/10.3/sql/ha_partition.cc:4999
|
#10 0x0000563a7bed4dd0 in ha_partition::rnd_init (this=0x7f5e400968e8, scan=true) at /data/src/10.3/sql/ha_partition.cc:4933
|
#11 0x0000563a7b439a2e in handler::ha_rnd_init (this=0x7f5e400968e8, scan=true) at /data/src/10.3/sql/handler.h:3098
|
#12 0x0000563a7b77ba8f in handler::ha_rnd_init_with_error (this=0x7f5e400968e8, scan=true) at /data/src/10.3/sql/handler.cc:3029
|
#13 0x0000563a7b8f7289 in init_read_record (info=0x7f5e517566f0, thd=0x7f5e40000b00, table=0x7f5e40095ca0, select=0x0, filesort=0x0, use_record_cache=1, print_error=true, disable_rr_cache=false) at /data/src/10.3/sql/records.cc:298
|
#14 0x0000563a7b55cf96 in copy_data_between_tables (thd=0x7f5e40000b00, from=0x7f5e40095ca0, to=0x7f5e40171a10, create=..., ignore=false, order_num=0, order=0x0, copied=0x7f5e517570d8, deleted=0x7f5e517570e0, keys_onoff=Alter_info::LEAVE_AS_IS, alter_ctx=0x7f5e517578d0) at /data/src/10.3/sql/sql_table.cc:10388
|
#15 0x0000563a7b55b3eb in mysql_alter_table (thd=0x7f5e40000b00, new_db=0x7f5e400051d8, new_name=0x7f5e40005598, create_info=0x7f5e517584c0, table_list=0x7f5e400128e0, alter_info=0x7f5e51758400, order_num=0, order=0x0, ignore=false) at /data/src/10.3/sql/sql_table.cc:9899
|
#16 0x0000563a7b5e279d in Sql_cmd_alter_table::execute (this=0x7f5e40012f30, thd=0x7f5e40000b00) at /data/src/10.3/sql/sql_alter.cc:488
|
#17 0x0000563a7b483ea7 in mysql_execute_command (thd=0x7f5e40000b00) at /data/src/10.3/sql/sql_parse.cc:6292
|
#18 0x0000563a7b4891b8 in mysql_parse (thd=0x7f5e40000b00, rawbuf=0x7f5e40012808 "ALTER TABLE t1 FORCE", length=20, parser_state=0x7f5e517595f0, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:8098
|
#19 0x0000563a7b4761fa in dispatch_command (command=COM_QUERY, thd=0x7f5e40000b00, packet=0x7f5e40008c61 "ALTER TABLE t1 FORCE", packet_length=20, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1858
|
#20 0x0000563a7b474c1d in do_command (thd=0x7f5e40000b00) at /data/src/10.3/sql/sql_parse.cc:1403
|
#21 0x0000563a7b5dcd65 in do_handle_one_connection (connect=0x563a7d7b20e0) at /data/src/10.3/sql/sql_connect.cc:1402
|
#22 0x0000563a7b5dcadc in handle_one_connection (arg=0x563a7d7b20e0) at /data/src/10.3/sql/sql_connect.cc:1308
|
#23 0x0000563a7beb2650 in pfs_spawn_thread (arg=0x563a7d7ccfe0) at /data/src/10.3/storage/perfschema/pfs.cc:1862
|
#24 0x00007f5e590cf4a4 in start_thread (arg=0x7f5e5175a700) at pthread_create.c:456
|
#25 0x00007f5e57617d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
|
|