Crash in add_found_match_trig_cond() with multiple views + multiple outer joins

Bug #824463 reported by Philip Stoev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Fix Released
Critical
Igor Babaev

Bug Description

backtrace:

#4 <signal handler called>
#5 0x0832b633 in add_found_match_trig_cond (tab=0x0, cond=0xae527f18, root_tab=0xae551aac) at sql_select.cc:7703
#6 0x0832d1da in make_join_select (join=0xae539310, select=0xae538368, cond=0xae537de8) at sql_select.cc:8312
#7 0x0831a77f in JOIN::optimize (this=0xae539310) at sql_select.cc:1246
#8 0x0831fb4d in mysql_select (thd=0xa7276a8, rref_pointer_array=0xa729224, tables=0xae512b68, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0,
    group=0x0, having=0x0, proc_param=0x0, select_options=2147764738, result=0xae536c10, unit=0xa728e0c, select_lex=0xa7290e8) at sql_select.cc:2877
#9 0x08317a67 in handle_select (thd=0xa7276a8, lex=0xa728db0, result=0xae536c10, setup_tables_done_option=0) at sql_select.cc:283
#10 0x082b2e4e in execute_sqlcom_select (thd=0xa7276a8, all_tables=0xae512b68) at sql_parse.cc:5087
#11 0x082a9c52 in mysql_execute_command (thd=0xa7276a8) at sql_parse.cc:2231
#12 0x082b548a in mysql_parse (thd=0xa7276a8,
    rawbuf=0xae5125f0 "SELECT STRAIGHT_JOIN *\nFROM (\nt1 AS alias1\nRIGHT JOIN (\nv2 AS alias3\nLEFT JOIN (\nv3 AS alias4\nLEFT JOIN (\nt4 AS alias5\nJOIN v3 ON\nalias5.a != 0\n)\nON alias4.a )\nON alias3.a != 0)\nON alias1.a != 0)\nJ"..., length=223, found_semicolon=0xae8e1228) at sql_parse.cc:6088
#13 0x082a78cf in dispatch_command (command=COM_QUERY, thd=0xa7276a8,
    packet=0xa780561 "SELECT STRAIGHT_JOIN *\nFROM (\nt1 AS alias1\nRIGHT JOIN (\nv2 AS alias3\nLEFT JOIN (\nv3 AS alias4\nLEFT JOIN (\nt4 AS alias5\nJOIN v3 ON\nalias5.a != 0\n)\nON alias4.a )\nON alias3.a != 0)\nON alias1.a != 0)\nJ"..., packet_length=223) at sql_parse.cc:1208
#14 0x082a6d55 in do_command (thd=0xa7276a8) at sql_parse.cc:906
#15 0x082a3dbc in handle_one_connection (arg=0xa7276a8) at sql_connect.cc:1178
#16 0x00821919 in start_thread () from /lib/libpthread.so.0
#17 0x0076acce in clone () from /lib/libc.so.6

test case:

CREATE TABLE t1 ( b int, a int ) ;

CREATE TABLE t2 ( a int ) ;
INSERT INTO t2 VALUES (5),(6);

CREATE TABLE t3 ( a int , c int) ;
INSERT INTO t3 VALUES (22,1),(23,-1);

CREATE TABLE t4 ( a int ) ;

CREATE TABLE t5 ( d int) ;
INSERT INTO t5 VALUES (0);

CREATE OR REPLACE VIEW v2 AS SELECT * FROM t2;
CREATE OR REPLACE VIEW v3 AS SELECT * FROM t3;

SELECT STRAIGHT_JOIN *
        FROM (
        t1 AS alias1
        RIGHT JOIN (
                v2 AS alias3
                LEFT JOIN (
                        v3 AS alias4
                        LEFT JOIN (
                                t4 AS alias5
                                JOIN v3 ON
                                alias5.a != 0
                        )
                ON alias4.a )
        ON alias3.a != 0)
        ON alias1.a != 0)
        JOIN t5 ON alias4.c != 0;

Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on

bzr version-info:

revision-id: <email address hidden>
date: 2011-08-09 18:34:26 +0300
build-date: 2011-08-11 14:30:00 +0300
revno: 3148

repeatable with maria-5.3 not repeatable with maria-5.2, mysql-5.5, maria-5.3 before WL#106

branch-nick: maria-5.3

Changed in maria:
milestone: none → 5.3
Changed in maria:
status: New → Confirmed
tags: added: igorb-seattle
Changed in maria:
importance: Undecided → Critical
status: Confirmed → In Progress
assignee: nobody → Igor Babaev (igorb-seattle)
Changed in maria:
status: In Progress → Fix Committed
Changed in maria:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.