Another instance of Assertion `outer_lookup_keys <= outer_record_count' failed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Fix Released
|
Medium
|
Timour Katchaounov |
Bug Description
Even after the fix for bug 714808 , the assertion still appears on certain queries.
mysqld: opt_subselect.
backtrace:
#8 0x006b0d98 in __assert_fail () from /lib/libc.so.6
#9 0x083c36f6 in JOIN::choose_
#10 0x0830dd92 in make_join_
#11 0x083062cb in JOIN::optimize (this=0xa748e550) at sql_select.cc:952
#12 0x081aecc0 in st_select_
#13 0x083c336b in JOIN::optimize_
#14 0x083075e4 in JOIN::optimize (this=0xa74896b8) at sql_select.cc:1302
#15 0x0830bb0c in mysql_select (thd=0xa32a138, rref_pointer_
order=0x0, group=0x0, having=0x0, proc_param=0x0, select_
at sql_select.cc:2653
#16 0x083045ed in handle_select (thd=0xa32a138, lex=0xa32b7d8, result=0xa7486158, setup_tables_
#17 0x082a20ac in execute_
#18 0x082990bb in mysql_execute_
#19 0x082a4644 in mysql_parse (thd=0xa32a138,
rawbuf=
#20 0x08296d53 in dispatch_command (command=COM_QUERY, thd=0xa32a138,
packet=
#21 0x08296200 in do_command (thd=0xa32a138) at sql_parse.cc:903
#22 0x082932de in handle_
#23 0x00821919 in start_thread () from /lib/libpthread
#24 0x0076acce in clone () from /lib/libc.so.6
bzr version-info:
revision-id: <email address hidden>
date: 2011-02-14 08:26:36 +0200
build-date: 2011-02-15 13:41:24 +0200
revno: 2890
branch-nick: maria-5.3-mwl89
Changed in maria: | |
milestone: | none → 5.3 |
Changed in maria: | |
importance: | Undecided → Medium |
status: | New → Fix Released |
Unfortunately, this bug is not repeatable with a standalone MTR test case and only partial simplification of the crashing query was possible. The reason may be that repeated crashes have caused a particular table configuration that is not repeatable when starting with a fresh server.
To reproduce, mount the attached vardir using MTR:
MTR_VERSION=1 perl mysql-test-run.pl --start-and-exit --start-dirty --vardir= ... 1st
and then use the mysql client to run the following query:
SELECT alias1.col_int_key FROM ( SELECT SQ1_alias2.* FROM t1 RIGHT JOIN t3 AS SQ1_alias2 RIGHT JOIN t1 AS SQ1_alias3 ON SQ1_alias3. col_int_ nokey = SQ1_alias2. col_int_ key ON SQ1_alias3. col_int_ key = SQ1_alias2. col_int_ nokey ) AS alias1 JOIN ( t3 AS alias2 STRAIGHT_JOIN t1 AS alias3 ON alias3.col_int_key = alias2.pk ) ON alias3. col_varchar_ key WHERE ( alias1. col_varchar_ key , alias3. col_varchar_ key ) IN ( SELECT SQ2_alias1. col_varchar_ nokey , SQ2_alias2. col_varchar_ nokey FROM t1 AS SQ2_alias1 JOIN t2 AS SQ2_alias2 ON SQ2_alias2. col_varchar_ key );