One-time crash in mark_as_null_row with semijoin+materialization
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Incomplete
|
Undecided
|
Sergey Petrunia |
Bug Description
This crash happened only once and was not repeatable:
# 2011-09-27T03:19:50 #3 <signal handler called>
# 2011-09-27T03:19:50 #4 0x00000000006f7795 in mark_as_null_row (table=
# 2011-09-27T03:19:50 at mysql_priv.h:2628
# 2011-09-27T03:19:50 #5 0x000000000075577d in return_zero_rows (join=0x2aaacc1
# 2011-09-27T03:19:50 0x2aaacc1733a8, tables=..., fields=..., send_row=true,
# 2011-09-27T03:19:50 select_
# 2011-09-27T03:19:50 info=0xd9a960 "Impossible WHERE noticed after reading const tables",
# 2011-09-27T03:19:50 having=0x0) at sql_select.cc:10225
# 2011-09-27T03:19:50 #6 0x00000000007560e0 in JOIN::exec (this=0x2aaacc1
# 2011-09-27T03:19:50 at sql_select.cc:2131
# 2011-09-27T03:19:50 #7 0x000000000075228e in mysql_select (thd=0x2aaabd14
# 2011-09-27T03:19:50 rref_pointer_
# 2011-09-27T03:19:50 fields=..., conds=0x2aaacc1
# 2011-09-27T03:19:50 having=0x0, proc_param=0x0, select_
# 2011-09-27T03:19:50 result=
# 2011-09-27T03:19:50 at sql_select.cc:2900
# 2011-09-27T03:19:50 #8 0x00000000007586b8 in handle_select (thd=0x2aaabd14
# 2011-09-27T03:19:50 lex=0x2aaabd1425d8, result=
# 2011-09-27T03:19:50 at sql_select.cc:283
# 2011-09-27T03:19:50 #9 0x00000000006a464a in execute_
# 2011-09-27T03:19:50 all_tables=
# 2011-09-27T03:19:50 #10 0x00000000006a672a in mysql_execute_
# 2011-09-27T03:19:50 at sql_parse.cc:2247
# 2011-09-27T03:19:50 #11 0x00000000006af4c3 in mysql_parse (thd=0x2aaabd14
# 2011-09-27T03:19:50 rawbuf=0x6976430 "SELECT SUM( alias1 . `col_int_key` ) AS field1 FROM ( BB AS alias1 INNER JOIN ( ( BB AS alias2 STRAIGHT_JOIN C AS alias3 ON (alias3 . `pk` = alias2 . `pk` ) ) ) ON (alias3 . `pk` = alias2 . `col_int_key` ) ) WHERE ( ( 7, 8 ) IN ( SELECT SQ1_alias1 . `pk` AS SQ1_field1 , SQ1_alias1 . `pk` AS SQ1_field2 FROM ( C AS SQ1_alias1 LEFT OUTER JOIN B AS SQ1_alias2 ON (SQ1_alias2 . `col_varchar_key` = SQ1_alias1 . `col_varchar_nokey` ) ) HAVING SQ1_alias1 . `pk` = 'v' ) ) AND ( alias1 . `pk` > 71 AND alias1 . `pk` < ( 71 + 59 ) OR alias1 . `pk` NOT IN (120) ) AND ( alias3 . `col_varchar_key` IN ( SELECT 'j' UNION SELECT 'p' ) AND alias1 . `col_int_key` IS NULL ) /* 5 */",
# 2011-09-27T03:19:50 length=688, found_semicolon
# 2011-09-27T03:19:50 #12 0x00000000006b0051 in dispatch_command (command=COM_QUERY,
# 2011-09-27T03:19:50 thd=0x2aaabd1401d8,
# 2011-09-27T03:19:50 packet=
# 2011-09-27T03:19:50 #13 0x00000000006b168f in do_command (thd=0x2aaabd14
# 2011-09-27T03:19:50 #14 0x000000000069be9f in handle_
# 2011-09-27T03:19:50 at sql_connect.cc:1187
# 2011-09-27T03:19:50 #15 0x00000033b600673d in start_thread () from /lib64/
# 2011-09-27T03:19:50 #16 0x00000033b58d40cd in clone () from /lib64/libc.so.6
crashing query:
SELECT SUM( alias1 . `col_int_key` ) AS field1 FROM ( BB AS alias1 INNER JOIN ( ( BB AS alias2 STRAIGHT_JOIN C AS alias3 ON (alias3 . `pk` = alias2 . `pk` ) ) ) ON (alias3 . `pk` = alias2 . `col_int_key` ) ) WHERE ( ( 7, 8 ) IN ( SELECT SQ1_alias1 . `pk` AS SQ1_field1 , SQ1_alias1 . `pk` AS SQ1_field2 FROM ( C AS SQ1_alias1 LEFT OUTER JOIN B AS SQ1_alias2 ON (SQ1_alias2 . `col_varchar_key` = SQ1_alias1 . `col_varchar_nokey` ) ) HAVING SQ1_alias1 . `pk` = 'v' ) ) AND ( alias1 . `pk` > 71 AND alias1 . `pk` < ( 71 + 59 ) OR alias1 . `pk` NOT IN (120) ) AND ( alias3 . `col_varchar_key` IN ( SELECT 'j' UNION SELECT 'p' ) AND alias1 . `col_int_key` IS NULL )
RQG commmand line:
perl runall.pl --queries=100000000 --debug --seed=time --mysqld1=
See valgrind warnings in 869876