[MDEV-19677]  Assertion `0' failed in row_sel_convert_mysql_key_to_innobase Created: 2019-06-03  Updated: 2020-02-21  Resolved: 2019-12-06

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.4
Fix Version/s: 10.4.6

Type: Bug Priority: Major
Reporter: Alice Sherepa Assignee: Varun Gupta (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-16240 Assertion `0' failed in row_sel_conv... Closed
relates to MDEV-18793 Assertion `0' failed in row_sel_conve... Closed
relates to MDEV-21245 Assertion `0' failed in row_sel_conve... Closed
relates to MDEV-21798 Assertion `0' failed in row_sel_conve... Closed

 Description   

--source include/have_innodb.inc
 
create table t1 (a int not null primary key, b int, key (b,a))engine=innodb with system versioning;
insert into t1 values (1,1),(2,2);
 
create table t2 (a int, b int) engine=innodb;
insert into t2 values (1,1), (2,2);
 
select 1 from t1 join t2 on t1.a = t2.a where t1.b <= 6 and t2.a > 2;

10.4 92df31dfbfcf6068f4f4a

2019-06-03 14:50:15 9 [Warning] InnoDB: Using a partial-field key prefix in search, index `b` of table `test`.`t1`. Last data field length 7 bytes, key ptr now exceeds key end by 4 bytes. Key value in the MySQL format:
 len 12; hex 00060000007fffffff0f423f; asc           B?;
mysqld: /10.4/storage/innobase/row/row0sel.cc:2681: void row_sel_convert_mysql_key_to_innobase(dtuple_t*, byte*, ulint, dict_index_t*, const byte*, ulint): Assertion `0' failed.
190603 14:50:15 [ERROR] mysqld got signal 6 ;
 
row/row0sel.cc:2684(row_sel_convert_mysql_key_to_innobase(dtuple_t*, unsigned char*, unsigned long, dict_index_t*, unsigned char const*, unsigned long))[0x5603612a2e3c]
handler/ha_innodb.cc:13557(ha_innobase::records_in_range(unsigned int, st_key_range*, st_key_range*))[0x5603606f34e0]
sql/multi_range_read.cc:159(handler::multi_range_read_info_const(unsigned int, st_range_seq_if*, void*, unsigned int, unsigned int*, unsigned int*, Cost_estimate*))[0x5603606fe473]
sql/multi_range_read.cc:1579(DsMrr_impl::dsmrr_info_const(unsigned int, st_range_seq_if*, void*, unsigned int, unsigned int*, unsigned int*, Cost_estimate*))[0x5603612b9557]
handler/ha_innodb.cc:20301(ha_innobase::multi_range_read_info_const(unsigned int, st_range_seq_if*, void*, unsigned int, unsigned int*, unsigned int*, Cost_estimate*))[0x560360db57dc]
sql/opt_range.cc:11062(check_quick_select(PARAM*, unsigned int, bool, SEL_ARG*, bool, unsigned int*, unsigned int*, Cost_estimate*, bool*))[0x560360d9fcad]
sql/opt_range.cc:7365(get_key_scans_params(PARAM*, SEL_TREE*, bool, bool, double))[0x560360d86205]
sql/opt_range.cc:2895(SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool, bool, bool, bool))[0x56036039f838]
sql/sql_select.cc:4648(get_quick_record_count(THD*, SQL_SELECT*, TABLE*, Bitmap<64u> const*, unsigned long long))[0x5603603a5961]
sql/sql_select.cc:5370(make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*))[0x560360387e38]
sql/sql_select.cc:2192(JOIN::optimize_inner())[0x560360382001]
sql/sql_select.cc:1562(JOIN::optimize())[0x56036039f069]
sql/sql_select.cc:4590(mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x560360376051]
sql/sql_select.cc:424(handle_select(THD*, LEX*, select_result*, unsigned long))[0x5603602fb775]
sql/sql_parse.cc:6612(execute_sqlcom_select(THD*, TABLE_LIST*))[0x5603602e88d4]
sql/sql_parse.cc:3884(mysql_execute_command(THD*))[0x560360303a36]
sql/sql_parse.cc:8164(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x5603602dc6ce]
sql/sql_parse.cc:1831(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x5603602d960b]
sql/sql_parse.cc:1362(do_command(THD*))[0x56036064ec89]
sql/sql_connect.cc:1403(do_handle_one_connection(CONNECT*))[0x56036064e653]
sql/sql_connect.cc:1307(handle_one_connection)[0x5603619e256f]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fcaa83466ba]
x86_64/clone.S:111(clone)[0x7fcaa75d741d]



 Comments   
Comment by Elena Stepanova [ 2019-06-03 ]

It would be MDEV-19634

Comment by Elena Stepanova [ 2019-12-06 ]

The test case indeed stopped crashing after this commit

commit 772c5f3c78fcdaea2169ba435bac8d851c7945c7 1e3dc15d62c2f7f7d3afe6affb0db66c8515234d
Commit:     Varun
CommitDate: Fri Jun 14 23:08:00 2019 +0530
 
    MDEV-19634: Assertion `0' failed in row_sel_convert_mysql_key_to_innobase, [Warning] InnoDB: Using a partial-field key prefix in search

Generated at Thu Feb 08 08:53:31 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.