Bug #41802 SP with multitable update with derived table + flush tables crashes server
Submitted: 31 Dec 2008 7:00 Modified: 31 Jan 2010 23:10
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Locking Severity:S1 (Critical)
Version:5.0.74,5.1.25, 5.1.26,5.1.30 OS:Any
Assigned to: Assigned Account CPU Architecture:Any
Tags: regression, valgrind

[31 Dec 2008 7:00] Shane Bester
Description:
14005BE5A mysqld.exe!Item_field::result_type()[item.h:1449]
1401DC246 mysqld.exe!check_simple_equality()[sql_select.cc:7339]
1401DC845 mysqld.exe!check_equality()[sql_select.cc:7502]
1401DC955 mysqld.exe!build_equal_items_for_cond()[sql_select.cc:7604]
1401DCF3F mysqld.exe!build_equal_items()[sql_select.cc:7791]
1401DFC0D mysqld.exe!optimize_cond()[sql_select.cc:8881]
1401E016F mysqld.exe!JOIN::optimize()[sql_select.cc:821]
1401E39D5 mysqld.exe!mysql_select()[sql_select.cc:2347]
14018021B mysqld.exe!mysql_derived_filling()[sql_derived.cc:293]
140180050 mysqld.exe!mysql_handle_derived()[sql_derived.cc:56]
140212879 mysqld.exe!mysql_multi_update_prepare()[sql_update.cc:1170]
14019EC40 mysqld.exe!mysql_execute_command()[sql_parse.cc:2980]
14013A548 mysqld.exe!sp_instr_stmt::exec_core()[sp_head.cc:2900]
14013DCC5 mysqld.exe!sp_lex_keeper::reset_lex_and_exec_core()[sp_head.cc:2728]
14013DEC6 mysqld.exe!sp_instr_stmt::execute()[sp_head.cc:2844]
14013F8E5 mysqld.exe!sp_head::execute()[sp_head.cc:1250]
140140CAF mysqld.exe!sp_head::execute_procedure()[sp_head.cc:1977]
1401A0D57 mysqld.exe!mysql_execute_command()[sql_parse.cc:4235]
1401A2F06 mysqld.exe!mysql_parse()[sql_parse.cc:5791]
1401A3C1A mysqld.exe!dispatch_command()[sql_parse.cc:1202]
1401A4CD7 mysqld.exe!do_command()[sql_parse.cc:857]
140246327 mysqld.exe!handle_one_connection()[sql_connect.cc:1115]
1402B82C5 mysqld.exe!pthread_start()[my_winthread.c:85]
1403CAC37 mysqld.exe!_callthreadstart()[thread.c:295]
1403CAD05 mysqld.exe!_threadstart()[thread.c:275]
077D6B69A kernel32.dll!BaseThreadStart()

How to repeat:
query that crashed was executed by a stored procedure, in this form:

UPDATE xx, (SELECT xx FROM xx WHERE xx =  NAME_CONST('xx',0) AND `xx` in (x,x,x,x,xx) and xx <>  NAME_CONST('x',-xx)) x SET x = x WHERE x =  NAME_CONST('xx',0) AND xx = x AND x=0
[2 Jan 2009 8:33] MySQL Verification Team
testcase!

Attachment: bug41802.c (text/plain), 5.99 KiB.

[2 Jan 2009 8:36] MySQL Verification Team
valgrind errors before crash.  ignore the memory comment earlier - it was SP cache, and not a leak.

Attachment: bug41802_valgrind_errors.txt (text/plain), 9.99 KiB.

[2 Jan 2009 8:42] MySQL Verification Team
this bug looks strikingly similar to bug #38499
[2 Jan 2009 12:48] MySQL Verification Team
very hard to repeat on 5.0.74, but I managed to do it twice.  5.1.22 didn't appear to have this bug, hence it's a regression somewhere.  5.1.30 crashes within seconds.
[31 Jan 2010 23:10] Davi Arnaut
Closed as a duplicate of Bug#48157.