Tokutek / mysql-5.5

TokuDB for MySQL 5.5
http://www.tokutek.com/products/tokudb-for-mysql/
GNU General Public License v2.0
110 stars 38 forks source link

RQG test temporal/temporal_replication.yy crashes on failed assertion at /storage/tokudb/ft-index/ft/ft-ops.cc:5977 #34

Closed joel9001 closed 10 years ago

joel9001 commented 10 years ago

During an RQG run of temporal/temporal_replication.yy against mysql-5.5.37-tokudb-7.1.6-rc.2-debug-e-linux-x86_64, an assertion fails at /storage/tokudb/ft-index/ft/ft-ops.cc:5977 on the following function:

keysrange_in_leaf_partition: Assertion `left_child_number <= right_child_number' failed (errno=0)

#7  0x00007fa17d190df0 in toku_do_assert_fail (expr_as_string=expr_as_string@entry=0x7fa17d1adf48 "left_child_number <= right_child_number", function=function@entry=0x7fa17d1afc70 <keysrange_in_leaf_part\
ition(ft_handle*, ftnode*, __toku_dbt*, __toku_dbt*, int, int, unsigned long, unsigned long*, unsigned long*, unsigned long*, unsigned long*, unsigned long*, bool*)::__FUNCTION__> "keysrange_in_leaf_part\
ition", file=file@entry=0x7fa17d1ab1c8 "/home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/storage/tokudb/ft-index/ft/ft-ops.cc", line=line@entry=5977, caller_errno=0) at /home/tokubuild\
/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/storage/tokudb/ft-index/portability/toku_assert.cc:212
#8  0x00007fa17d1287c4 in keysrange_in_leaf_partition (single_basement_node=<optimized out>, greater=<optimized out>, equal_right=<optimized out>, middle=<optimized out>, equal_left=<optimized out>, less\
=<optimized out>, estimated_num_rows=<optimized out>, right_child_number=<optimized out>, left_child_number=<optimized out>, key_right=<optimized out>, key_left=<optimized out>, node=<optimized out>, brt\
=<optimized out>) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/storage/tokudb/ft-index/ft/ft-ops.cc:5977
#9  toku_ft_keysrange_internal (brt=brt@entry=0x7fa1532138e0, node=0x7fa1532a8140, key_left=key_left@entry=0x7fa154a13330, key_right=key_right@entry=0x7fa154a13350, may_find_right=may_find_right@entry=tr\
ue, less=less@entry=0x7fa154a13088, equal_left=equal_left@entry=0x7fa154a13090, middle=middle@entry=0x7fa154a13098, equal_right=equal_right@entry=0x7fa154a130a0, greater=greater@entry=0x7fa154a130a8, sin\
gle_basement_node=single_basement_node@entry=0x7fa154a13086, estimated_num_rows=estimated_num_rows@entry=4907, min_bfe=min_bfe@entry=0x7fa154a13120, match_bfe=match_bfe@entry=0x7fa154a131a0, unlockers=un\
lockers@entry=0x7fa154a13100, ancestors=ancestors@entry=0x0, bounds=bounds@entry=0x7fa17d1afa50 <infinite_bounds>) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/storage/tokudb/ft\
-index/ft/ft-ops.cc:6041
#10 0x00007fa17d129316 in toku_ft_keysrange (brt=0x7fa1532138e0, key_left=key_left@entry=0x7fa154a13330, key_right=key_right@entry=0x7fa154a13350, less_p=less_p@entry=0x7fa154a13300, equal_left_p=equal_l\
eft_p@entry=0x7fa154a13308, middle_p=middle_p@entry=0x7fa154a13310, equal_right_p=equal_right_p@entry=0x7fa154a13318, greater_p=greater_p@entry=0x7fa154a13320, middle_3_exact_p=middle_3_exact_p@entry=0x7\
fa154a132ff) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/storage/tokudb/ft-index/ft/ft-ops.cc:6159
#11 0x00007fa17d0d5141 in toku_db_keys_range64 (db=0x7fa153029480, txn=0x7fa14e9c4800, keyleft=0x7fa154a13330, keyright=0x7fa154a13350, less=0x7fa154a13300, left=0x7fa154a13308, between=0x7fa154a13310, r\
ight=0x7fa154a13318, greater=0x7fa154a13320, middle_3_exact=0x7fa154a132ff) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/storage/tokudb/ft-index/src/ydb_db.cc:771
#12 0x00007fa17d0bc0a8 in ha_tokudb::records_in_range (this=0x7fa151f6b010, keynr=2, start_key=<optimized out>, end_key=0x7fa154a13480) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5\
.37/storage/tokudb/ha_tokudb.cc:7395
#13 0x000000000078ba14 in check_quick_keys (param=param@entry=0x7fa154a15290, idx=idx@entry=2, key_tree=0x7fa14634f8a8, min_key=min_key@entry=0x7fa154a153e8 "", min_key_flag=min_key_flag@entry=0, min_key\
part=min_keypart@entry=-1, max_key=max_key@entry=0x7fa154a162e6 "", max_key_flag=max_key_flag@entry=0, max_keypart=max_keypart@entry=-1) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.\
5.37/sql/opt_range.cc:7852
#14 0x000000000078ba6d in check_quick_keys (param=param@entry=0x7fa154a15290, idx=idx@entry=2, key_tree=key_tree@entry=0x7fa14634fb58, min_key=min_key@entry=0x7fa154a153e8 "", min_key_flag=min_key_flag@e\
ntry=0, min_keypart=min_keypart@entry=-1, max_key=max_key@entry=0x7fa154a162e6 "", max_key_flag=max_key_flag@entry=0, max_keypart=max_keypart@entry=-1) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-d\
ebug-e/mysql-5.5.37/sql/opt_range.cc:7870
#15 0x000000000078bc4e in check_quick_select (param=param@entry=0x7fa154a15290, idx=idx@entry=2, tree=0x7fa14634fb58, update_tbl_stats=update_tbl_stats@entry=true) at /home/tokubuild/builds/build-tokudb-\
7.1.6-rc.2-debug-e/mysql-5.5.37/sql/opt_range.cc:7623
#16 0x000000000078bea2 in get_key_scans_params (param=param@entry=0x7fa154a15290, tree=tree@entry=0x7fa14634f0f8, index_read_must_be_used=index_read_must_be_used@entry=false, update_tbl_stats=update_tbl_\
stats@entry=true, read_time=read_time@entry=891.70000000000005) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/sql/opt_range.cc:4992
#17 0x00000000007959a6 in SQL_SELECT::test_quick_select (this=this@entry=0x7fa14604f1b8, thd=thd@entry=0x7fa16d820000, keys_to_use=..., keys_to_use@entry=..., prev_tables=prev_tables@entry=0, limit=limit\
@entry=18446744073709551615, force_quick_range=force_quick_range@entry=false) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/sql/opt_range.cc:2333
#18 0x00000000006393bf in check_quick (limit=18446744073709551615, force_quick_range=<optimized out>, thd=0x7fa16d820000, this=0x7fa14604f1b8) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/my\
sql-5.5.37/sql/opt_range.h:884
#19 mysql_update (thd=thd@entry=0x7fa16d820000, table_list=0x7fa14604e200, fields=..., values=..., conds=0x7fa14604ef90, order_num=<optimized out>, order=0x0, limit=18446744073709551615, handle_duplicate\
s=DUP_ERROR, ignore=false, noar=false, found_return=found_return@entry=0x7fa154a17900, updated_return=updated_return@entry=0x7fa154a17908) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-\
5.5.37/sql/sql_update.cc:408
#20 0x00000000005be58c in mysql_execute_command (thd=thd@entry=0x7fa16d820000) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/sql/sql_parse.cc:2818
#21 0x00000000005c35fb in mysql_parse (thd=thd@entry=0x7fa16d820000, rawbuf=<optimized out>, length=152, parser_state=parser_state@entry=0x7fa154a18710) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-\
debug-e/mysql-5.5.37/sql/sql_parse.cc:5676
#22 0x00000000005c41e0 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7fa16d820000, packet=packet@entry=0x7fa16d823001 "UPDATE `D` SET `col_int_key` = FROM_UNIXTIME( 1231421440 ) W\
HERE `col_date_key` NOT IN ( FROM_UNIXTIME( 3791847424 ) , CURRENT_DATE() , FROM_DAYS( 1 ) )", packet_length=packet_length@entry=152) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.3\
7/sql/sql_parse.cc:1042
#23 0x00000000005c57d8 in do_command (thd=0x7fa16d820000) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/sql/sql_parse.cc:777
#24 0x000000000066d53e in do_handle_one_connection (thd_arg=thd_arg@entry=0x7fa16d820000) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/sql/sql_connect.cc:862
#25 0x000000000066d604 in handle_one_connection (arg=0x7fa16d820000) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/sql/sql_connect.cc:781
#26 0x00007fa17f59cf6e in start_thread (arg=0x7fa154a19700) at pthread_create.c:311
#27 0x00007fa17e8829cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
(gdb) fr 11
#11 0x00007fa17d0d5141 in toku_db_keys_range64 (db=0x7fa153029480, txn=0x7fa14e9c4800, keyleft=0x7fa154a13330, keyright=0x7fa154a13350, less=0x7fa154a13300, left=0x7fa154a13308, between=0x7fa154a13310, r\
ight=0x7fa154a13318, greater=0x7fa154a13320, middle_3_exact=0x7fa154a132ff) at /home/tokubuild/builds/build-tokudb-7.1.6-rc.2-debug-e/mysql-5.5.37/storage/tokudb/ft-index/src/ydb_db.cc:771
(gdb) p *keyleft
$32 = {data = 0x7fa14bc10500, size = 5, ulen = 0, flags = 0}
(gdb) p *keyright
$33 = {data = 0x7fa14bc105d8, size = 5, ulen = 0, flags = 0}
(gdb) x/5b $32->data
0x7fa14bc10500: 1       1       0       0       0
(gdb) x/5b $33->data
0x7fa14bc105d8: -1      1       0       0       0
note that the first byte is the infinity byte:
keyleft = (k,+infinity)
keyright = (k,-infinity)
joel9001 commented 10 years ago

Here is the RQG command that was executed:

./runall.pl --grammar=conf/temporal/temporal_replication.yy --duration=300 --queries=100000000 --threads=64 --basedir=/mnt/ssd/stress3/mysql-5.5.37-tokudb-7.1.6-rc.2-debug-e-linux-x86_64 --vardir=/mnt/ssd/stress3/vardir1_1 --mask-level=0 --mask=0 --seed=1 --mysqld=--general_log --sqltrace