[MDEV-4971] Server crashes in Item_equal_iterator<List_iterator_fast, Item>::get_curr_field from Item_equal::contains Created: 2013-08-29  Updated: 2018-07-11  Resolved: 2013-09-03

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: 10.0.5, 5.5.33, 5.3.13

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Igor Babaev
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-16727 Server crashes in Item_equal_iterator... Closed

 Description   

bzr version-info
revision-id: igor@askmonty.org-20130829175612-acvqr7uadpa7kylp
revno: 3686
branch-nick: 5.3

Also reproducible on current 5.5 revno 3864. It looks like both already have the fix for MDEV-4944.

#3  <signal handler called>
#4  0x00000000005de5c2 in Item_equal_iterator<List_iterator_fast, Item>::get_curr_field (this=0x7f3bc8546120) at item_cmpfunc.h:1857
#5  0x00000000005d9e20 in Item_equal::contains (this=0x7f3bbc03a298, field=0x7f3bbc02e1f0) at item_cmpfunc.cc:5566
#6  0x00000000005884df in Item_field::find_item_equal (this=0x7f3bbc019da0, cond_equal=0x7f3bbc01a950) at item.cc:4882
#7  0x00000000007246c5 in eliminate_item_equal (cond=0x0, upper_levels=0x7f3bbc01a950, item_equal=0x7f3bbc03a4a0) at sql_select.cc:11865
#8  0x0000000000725039 in substitute_for_best_equal_field (context_tab=0x1, cond=0x7f3bbc03a4a0, cond_equal=0x7f3bbc01a950, table_join_idx=0x7f3bbc03acd8) at sql_select.cc:12156
#9  0x0000000000724d20 in substitute_for_best_equal_field (context_tab=0x1, cond=0x7f3bbc01a3c8, cond_equal=0x7f3bbc01ad68, table_join_idx=0x7f3bbc03acd8) at sql_select.cc:12083
#10 0x0000000000724d20 in substitute_for_best_equal_field (context_tab=0x1, cond=0x7f3bbc01ac78, cond_equal=0x7f3bbc01ad68, table_join_idx=0x7f3bbc03acd8) at sql_select.cc:12083
#11 0x0000000000708a4e in JOIN::optimize (this=0x7f3bbc038f90) at sql_select.cc:1246
#12 0x000000000070ef27 in mysql_select (thd=0x39378c8, rref_pointer_array=0x393a5b8, tables=0x7f3bbc0191b8, wild_num=1, fields=..., conds=0x7f3bbc01ac78, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147764736, result=0x7f3bbc01ae50, unit=0x3939e58, select_lex=0x393a360) at sql_select.cc:2985
#13 0x00000000007059d9 in handle_select (thd=0x39378c8, lex=0x3939db8, result=0x7f3bbc01ae50, setup_tables_done_option=0) at sql_select.cc:288
#14 0x0000000000691cb2 in execute_sqlcom_select (thd=0x39378c8, all_tables=0x7f3bbc0191b8) at sql_parse.cc:5172
#15 0x0000000000688a7a in mysql_execute_command (thd=0x39378c8) at sql_parse.cc:2305
#16 0x000000000069473c in mysql_parse (thd=0x39378c8, rawbuf=0x7f3bbc018f40 "SELECT * FROM t1, t2 WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL )", length=92, found_semicolon=0x7f3bc85477e0) at sql_parse.cc:6173
#17 0x0000000000686197 in dispatch_command (command=COM_QUERY, thd=0x39378c8, packet=0x39b1b29 "SELECT * FROM t1, t2 WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL )", packet_length=92) at sql_parse.cc:1243
#18 0x0000000000685408 in do_command (thd=0x39378c8) at sql_parse.cc:923
#19 0x00000000006822a2 in handle_one_connection (arg=0x39378c8) at sql_connect.cc:1231
#20 0x00007f3bd5d6fe9a in start_thread (arg=0x7f3bc8548700) at pthread_create.c:308
#21 0x00007f3bd5298cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

CREATE TABLE t1 (pk1 INT, a1 INT, b1 INT, PRIMARY KEY(pk1)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1,10,100), (2,20,200) ;
 
CREATE TABLE t2 (pk2 INT, a2 INT, PRIMARY KEY(pk2)) ENGINE=MyISAM;
INSERT INTO t2 VALUES (1,1);
 
SELECT * FROM t1, t2 WHERE a1 = pk2 AND ( ( b1 = 6 OR a2 > 4 ) AND pk2 = a2 OR pk1 IS NULL );



 Comments   
Comment by Igor Babaev [ 2013-09-03 ]

The fix was pushed into the 5.3 tree and merged into the 5.5 tree.

Generated at Thu Feb 08 07:00:39 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.