Assertion `! is_set()' failed in Diagnostics_area::set_ok_status with derived table + subquery + concurrent DML
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Fix Released
|
High
|
Michael Widenius |
Bug Description
When executing concurrent queries such as:
CREATE TABLE transforms.
SELECT alias1 . `col_datetime_key` AS field1 FROM (
( SELECT SQ1_alias1 . * FROM C AS SQ1_alias1 ) AS alias1 , ( SELECT SQ2_alias1 . * FROM C AS SQ2_alias1 ) AS alias2 )
WHERE ( alias1 . `col_int_nokey` , alias2 . `col_int_nokey` ) IN (
SELECT SQ3_alias1 . `col_int_nokey` AS SQ3_field1 , SQ3_alias1 . `col_int_nokey` AS SQ3_field2 FROM BB AS SQ3_alias1
);
the server asserts as follows:
mysqld: sql_class.cc:563: void Diagnostics_
# 2011-08-18T09:26:38 #6 0x00000033b58296e6 in __assert_fail () from /lib64/libc.so.6
# 2011-08-18T09:26:38 #7 0x000000000067598a in Diagnostics_
# 2011-08-18T09:26:38 message_
# 2011-08-18T09:26:38 #8 0x0000000000585487 in my_ok (thd=0xc15f3f8, affected_rows=0, id=0, message=0x4f9aa730 "Records: 0 Duplicates: 0 Warnings: 0") at sql_class.h:2686
# 2011-08-18T09:26:38 #9 0x000000000075c4d7 in select_
# 2011-08-18T09:26:38 #10 0x000000000075c51f in select_
# 2011-08-18T09:26:38 #11 0x0000000000736532 in do_select (join=0x2aaac40
# 2011-08-18T09:26:38 #12 0x0000000000756292 in JOIN::exec (this=0x2aaac40
# 2011-08-18T09:26:38 #13 0x00000000007501aa in mysql_select (thd=0xc15f3f8, rref_pointer_
# 2011-08-18T09:26:38 og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_
# 2011-08-18T09:26:38 at sql_select.cc:2891
# 2011-08-18T09:26:38 #14 0x00000000007565c4 in handle_select (thd=0xc15f3f8, lex=0xc161800, result=
# 2011-08-18T09:26:38 #15 0x00000000006a61a4 in mysql_execute_
# 2011-08-18T09:26:38 #16 0x00000000006adc05 in mysql_parse (thd=0xc15f3f8,
# 2011-08-18T09:26:38 rawbuf=0xc163260 "CREATE TABLE transforms.
# 2011-08-18T09:26:38 at sql_parse.cc:6088
# 2011-08-18T09:26:38 #17 0x00000000006aea9d in dispatch_command (command=COM_QUERY, thd=0xc15f3f8,
# 2011-08-18T09:26:38 packet=0xc233549 "CREATE TABLE transforms.
# 2011-08-18T09:26:38 #18 0x00000000006b00ab in do_command (thd=0xc15f3f8) at sql_parse.cc:906
# 2011-08-18T09:26:38 #19 0x000000000069aa4b in handle_
# 2011-08-18T09:26:38 #20 0x00000033b600673d in start_thread () from /lib64/
# 2011-08-18T09:26:38 #21 0x00000033b58d40cd in clone () from /lib64/libc.so.6
optimizer switch:
index_merge=
bzr version-info:
revision-id: <email address hidden>
date: 2011-08-17 14:10:32 +0300
build-date: 2011-08-18 09:39:38 +0300
revno: 3163
branch-nick: maria-5.3
Reproducible with maria-5.3. Not reproducible with mysql-5.5, maria-5.2 and maria-5.3 before the derived table changes.
Related branches
Changed in maria: | |
assignee: | nobody → Michael Widenius (monty) |
Changed in maria: | |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in maria: | |
status: | In Progress → Fix Committed |
Changed in maria: | |
status: | Fix Committed → Fix Released |
To reproduce with the RQG:
$ bzr branch lp-randgen
$ perl runall.pl --notnull --duration=60 --queries=300000000 --reporter= QueryTimeout, Deadlock, Backtrace, Shutdown --threads=4 --validator= Transformer --basedir= /home/philips/ bzr/maria- 5.3/ --transformers= ExecuteAsInsert Select, ExecuteAsUpdate Delete --engine=InnoDB --mysqld= --innodb_ stats_sample_ pages=64 --seed=131332050 --grammar=/path/to/bug828514.yy
Please ignore all message from the RQG except for the final crash report.