[MDEV-29242] Assertion `computed_weight == weight' failed SEL_ARG::verify_weight Created: 2022-08-03  Updated: 2022-08-09  Resolved: 2022-08-09

Status: Closed
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: 10.5
Fix Version/s: 10.5.17, 10.6.9, 10.8.4, 10.9.2, 10.7.6, 10.10.2

Type: Bug Priority: Blocker
Reporter: Elena Stepanova Assignee: Sergei Petrunia
Resolution: Fixed Votes: 0
Labels: regression

Issue Links:
Problem/Incident
is caused by MDEV-25020 SELECT if there is IN clause with bin... Closed

 Description   

CREATE TABLE t1 (id INT, KEY (id));
INSERT INTO t1 VALUES (1),(5);
SELECT id FROM t1 WHERE id IS NULL OR id NOT BETWEEN 1 AND 4;
 
# Cleanup
DROP TABLE t1;

10.5 cd51854d7a

2022-08-04  0:36:58 4 [ERROR] SEL_ARG weight mismatch: computed 2 have 3
 
mariadbd: /data/src/10.5-bug/sql/opt_range.cc:10086: uint SEL_ARG::verify_weight(): Assertion `computed_weight == weight' failed.
220804  0:36:58 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f28277e6662 in __GI___assert_fail (assertion=0x55916195619e "computed_weight == weight", file=0x559161954248 "/data/src/10.5-bug/sql/opt_range.cc", line=10086, function=0x5591619561b8 "uint SEL_ARG::verify_weight()") at assert.c:101
#8  0x0000559160eca343 in SEL_ARG::verify_weight (this=0x7f281005b270) at /data/src/10.5-bug/sql/opt_range.cc:10086
#9  0x0000559160eca3cc in key_or_with_limit (param=0x7f28221a18f0, keyno=0, key1=0x7f281005b178, key2=0x7f281005b270) at /data/src/10.5-bug/sql/opt_range.cc:10107
#10 0x0000559160ec9445 in tree_or (param=0x7f28221a18f0, tree1=0x7f281005b0f8, tree2=0x7f281005b1e8) at /data/src/10.5-bug/sql/opt_range.cc:9770
#11 0x0000559160ec53e2 in Item_cond::get_mm_tree (this=0x7f28100166f8, param=0x7f28221a18f0, cond_ptr=0x7f2810018d88) at /data/src/10.5-bug/sql/opt_range.cc:8380
#12 0x0000559160eb6e6e in SQL_SELECT::test_quick_select (this=0x7f2810018d80, thd=0x7f2810000db8, keys_to_use=..., prev_tables=0, limit=18446744073709551615, force_quick_range=false, ordered_output=false, remove_false_parts_of_where=true, only_single_index_range_scan=false) at /data/src/10.5-bug/sql/opt_range.cc:2883
#13 0x0000559160a0dbad in get_quick_record_count (thd=0x7f2810000db8, select=0x7f2810018d80, table=0x7f2810101568, keys=0x7f2810017bc8, limit=18446744073709551615) at /data/src/10.5-bug/sql/sql_select.cc:4853
#14 0x0000559160a1050c in make_join_statistics (join=0x7f2810017140, tables_list=..., keyuse_array=0x7f2810017428) at /data/src/10.5-bug/sql/sql_select.cc:5580
#15 0x0000559160a049d8 in JOIN::optimize_inner (this=0x7f2810017140) at /data/src/10.5-bug/sql/sql_select.cc:2325
#16 0x0000559160a02485 in JOIN::optimize (this=0x7f2810017140) at /data/src/10.5-bug/sql/sql_select.cc:1686
#17 0x0000559160a0d898 in mysql_select (thd=0x7f2810000db8, tables=0x7f2810015a00, fields=..., conds=0x7f28100166f8, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7f2810017118, unit=0x7f2810004f60, select_lex=0x7f28100153e8) at /data/src/10.5-bug/sql/sql_select.cc:4795
#18 0x00005591609fd2a3 in handle_select (thd=0x7f2810000db8, lex=0x7f2810004e98, result=0x7f2810017118, setup_tables_done_option=0) at /data/src/10.5-bug/sql/sql_select.cc:444
#19 0x00005591609c00b0 in execute_sqlcom_select (thd=0x7f2810000db8, all_tables=0x7f2810015a00) at /data/src/10.5-bug/sql/sql_parse.cc:6315
#20 0x00005591609b73e7 in mysql_execute_command (thd=0x7f2810000db8) at /data/src/10.5-bug/sql/sql_parse.cc:4006
#21 0x00005591609c4e81 in mysql_parse (thd=0x7f2810000db8, rawbuf=0x7f2810015310 "SELECT id FROM t1 WHERE id IS NULL OR id NOT BETWEEN 1 AND 4", length=60, parser_state=0x7f28221a33d0, is_com_multi=false, is_next_command=false) at /data/src/10.5-bug/sql/sql_parse.cc:8101
#22 0x00005591609b0fba in dispatch_command (command=COM_QUERY, thd=0x7f2810000db8, packet=0x7f281000b5c9 "SELECT id FROM t1 WHERE id IS NULL OR id NOT BETWEEN 1 AND 4", packet_length=60, is_com_multi=false, is_next_command=false) at /data/src/10.5-bug/sql/sql_parse.cc:1891
#23 0x00005591609af814 in do_command (thd=0x7f2810000db8) at /data/src/10.5-bug/sql/sql_parse.cc:1375
#24 0x0000559160b5ccd3 in do_handle_one_connection (connect=0x55916512a698, put_in_cache=true) at /data/src/10.5-bug/sql/sql_connect.cc:1418
#25 0x0000559160b5c995 in handle_one_connection (arg=0x55916510a1a8) at /data/src/10.5-bug/sql/sql_connect.cc:1312
#26 0x000055916106eb5c in pfs_spawn_thread (arg=0x55916512a418) at /data/src/10.5-bug/storage/perfschema/pfs.cc:2201
#27 0x00007f2827cb2ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#28 0x00007f28278afdef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

The assertion failure looks identical to MDEV-25896, but for this test case, it is a regression which started happening after this commit:

commit 90ba999e800957c230290bd438a3e73628222a74
Author: Sergei Petrunia
Date:   Wed Jul 27 17:37:03 2022 +0300
 
    MDEV-25020: Range optimizer regression for key IN (const, ....)



 Comments   
Comment by Sergei Petrunia [ 2022-08-04 ]

bb-10.5-mdev29242

Generated at Thu Feb 08 10:06:59 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.