Bug #46607 Assertion failed: (cond_type == Item::FUNC_ITEM) results in server crash
| Submitted: | 7 Aug 2009 16:32 | Modified: | 14 Sep 2009 19:50 |
|---|---|---|---|
| Reporter: | Patrick Crews | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Optimizer | Severity: | S3 (Non-critical) |
| Version: | 5.1, 5.4 | OS: | Any |
| Assigned to: | Alexey Kopytov | CPU Architecture: | Any |
| Tags: | assertion failed, crash | ||
[7 Aug 2009 16:32]
Patrick Crews
[7 Aug 2009 16:33]
Patrick Crews
additional crash output
Attachment: Bug46607_crash_output.txt (text/plain), 10.09 KiB.
[7 Aug 2009 17:05]
Patrick Crews
Test case: This bug does not seem to be affected by optimizer_switch, optimizer_use_mrr, engine_condition_pushdown, or join_cache_level. I have *not* tested this on 5.0, but it is present in 5.1 and azalea. SET SESSION optimizer_switch ='firstmatch=on,index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,loosescan=on,materialization=on,semijoin=on' ; !50400 SET SESSION optimizer_use_mrr = 'force' ; !50400 SET SESSION engine_condition_pushdown = 'ON' ; !50400 SET SESSION join_cache_level = 1 ; #/* Begin test case for query 0 */ --disable_warnings DROP TABLE /*! IF EXISTS */ D; --enable_warnings CREATE TABLE `D` ( `int_key` int(11) DEFAULT NULL, `varchar_key` varchar(1) DEFAULT NULL, KEY `int_key` (`int_key`), KEY `varchar_key` (`varchar_key`,`int_key`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `D` VALUES (NULL,NULL),(6,NULL),(9,NULL),(25,NULL),(1,'a'),(2,'a'),(8,'a'),(3,'b'),(4,'b'),(5,'b'),(5,'b'),(0,'c'),(2,'c'),(7,'c'),(8,'c'),(9,'c'),(60,'c'),(147,'c'),(0,'d'),(6,'d'),(7,'d'),(8,'d'),(9,'d'),(255,'d'),(0,'e'),(1,'e'),(2,'e'),(4,'e'),(4,'e'),(8,'e'),(NULL,'f'),(3,'f'),(5,'f'),(NULL,'g'),(4,'g'),(5,'g'),(NULL,'h'),(3,'h'),(6,'h'),(8,'h'),(5,'i'),(1,'j'),(5,'j'),(5,'j'),(1,'k'),(7,'k'),(1,'l'),(151,'l'),(NULL,'m'),(6,'m'),(6,'m'),(7,'m'),(NULL,'n'),(6,'n'),(23,'n'),(0,'o'),(1,'o'),(195,'o'),(0,'p'),(6,'p'),(7,'p'),(3,'q'),(7,'q'),(8,'q'),(NULL,'r'),(3,'r'),(8,'r'),(0,'s'),(0,'s'),(8,'s'),(8,'s'),(2,'t'),(9,'t'),(9,'t'),(77,'t'),(3,'u'),(7,'u'),(9,'u'),(248,'u'),(NULL,'v'),(1,'v'),(2,'v'),(4,'v'),(NULL,'w'),(NULL,'w'),(0,'w'),(1,'w'),(1,'w'),(98,'w'),(NULL,'x'),(1,'x'),(8,'x'),(2,'y'),(3,'y'),(4,'y'),(5,'y'),(0,'z'),(1,'z'),(6,'z'),(8,'z'); SELECT MAX( `int_key` ) , `varchar_key` field3 FROM D table1 WHERE `int_key` GROUP BY field3 ; DROP TABLE D; #/* End of test case for query 0 */
[7 Aug 2009 20:38]
Philip Stoev
# 22:52:20 #4 0x90f033db in __assert_rtn ()
# 22:52:20 #5 0x00231f60 in check_group_min_max_predicates (cond=0x1121860, min_max_arg_item=0x1121358, image_type=Field::itRAW) at opt_range.cc:9633
# 22:52:20 #6 0x002333a8 in get_best_group_min_max (param=0xb041ee9c, tree=0x0) at opt_range.cc:9543
# 22:52:20 #7 0x00234062 in SQL_SELECT::test_quick_select (this=0x1122ef8, thd=0x1103418, keys_to_use={map = 32}, prev_tables=0, limit=18446744073709551615, force_quick_range=false) at opt_range.cc:2352
# 22:52:20 #8 0x0017a32f in get_quick_record_count (thd=0x1103418, select=0x1122ef8, table=0x1118c18, keys=0x1122cc8, limit=18446744073709551615) at sql_select.cc:2445
# 22:52:20 #9 0x0018fae8 in make_join_statistics (join=0x1121a30, tables_arg=0x1121658, conds=0x1121860, keyuse_array=0x1122b34) at sql_select.cc:2855
# 22:52:20 #10 0x0019dedd in JOIN::optimize (this=0x1121a30) at sql_select.cc:954
# 22:52:20 #11 0x001a5cae in mysql_select (thd=0x1103418, rref_pointer_array=0x1104864, tables=0x1121658, wild_num=0, fields=@0x1104800, conds=0x1121860, og_num=1, order=0x0, group=0x1121988, having=0x0, proc_param=0x0, select_options=2147764736, result=0x1121a18, unit=0x11044fc, select_lex=0x110476c) at sql_select.cc:2384
# 22:52:20 #12 0x001a60c2 in handle_select (thd=0x1103418, lex=0x11044a0, result=0x1121a18, setup_tables_done_option=0) at sql_select.cc:268
# 22:52:20 #13 0x0010a4a6 in execute_sqlcom_select (thd=0x1103418, all_tables=0x1121658) at sql_parse.cc:5011
# 22:52:20 #14 0x00110f14 in mysql_execute_command (thd=0x1103418) at sql_parse.cc:2206
# 22:52:20 #15 0x0011afa8 in mysql_parse (thd=0x1103418, inBuf=0x1121228 "SELECT MAX( `int_key` ) , `varchar_key` field2 FROM D table1 WHERE `int_key` GROUP BY field2", length=99, found_semicolon=0xb0422df0) at sql_parse.cc:5931
# 22:52:20 #16 0x0011bd66 in dispatch_command (command=COM_QUERY, thd=0x1103418, packet=0x1931019 " SELECT MAX( `int_key` ) , `varchar_key` field2 FROM D table1 WHERE `int_key` GROUP BY field2 ", packet_length=103) at sql_parse.cc:1213
# 22:52:20 #17 0x0011d07a in do_command (thd=0x1103418) at sql_parse.cc:854
# 22:52:20 #18 0x00108122 in handle_one_connection (arg=0x1103418) at sql_connect.cc:1127
# 22:52:20 #19 0x90e53155 in _pthread_start ()
# 22:52:20 #20 0x90e53012 in thread_start ()
[29 Aug 2009 17:58]
Ramil Kalimullin
Ok to push.
Please consider adding DBUG_PRINT("info", ...) under the introduced if().
Thanks.
[30 Aug 2009 7:04]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/81947 3062 Alexey Kopytov 2009-08-30 Bug #46607: Assertion failed: (cond_type == Item::FUNC_ITEM) results in server crash check_group_min_max_predicates() assumed the input condition item to be one of COND_ITEM, SUBSELECT_ITEM, or FUNC_ITEM. Since a condition of the form "field" is also a valid condition equivalent to "field <> 0", using such a condition in a query where the loose index scan was chosen resulted in a debug assertion failure. Fixed by handling conditions of the FIELD_ITEM type in check_group_min_max_predicates(). @ mysql-test/r/group_min_max.result Added a test case for bug #46607. @ mysql-test/t/group_min_max.test Added a test case for bug #46607. @ sql/opt_range.cc Handle conditions of the FUNC_ITEM type in check_group_mix_max_predicates().
[2 Sep 2009 16:41]
Bugs System
Pushed into 5.1.39 (revid:joro@sun.com-20090902154533-8actmfcsjfqovgsb) (version source revid:staale.smedseng@sun.com-20090830170148-ko1pf5jg9wi7oony) (merge vers: 5.1.39) (pib:11)
[4 Sep 2009 19:38]
Paul DuBois
Noted in 5.1.39 changelog. In queries for which the loose index scan access method was chosen, using a condition of the form col_name rather than the equivalent col_name <> 0 caused an assertion failure. Setting report to NDI pending push into 5.4.x.
[14 Sep 2009 16:05]
Bugs System
Pushed into 5.4.4-alpha (revid:alik@sun.com-20090914155317-m1g9wodmndzdj4l1) (version source revid:alik@sun.com-20090914155317-m1g9wodmndzdj4l1) (merge vers: 5.4.4-alpha) (pib:11)
[14 Sep 2009 19:50]
Paul DuBois
Noted in 5.4.4 changelog.
[1 Oct 2009 5:59]
Bugs System
Pushed into 5.1.39-ndb-6.3.28 (revid:jonas@mysql.com-20091001055605-ap2kiaarr7p40mmv) (version source revid:jonas@mysql.com-20091001055605-ap2kiaarr7p40mmv) (merge vers: 5.1.39-ndb-6.3.28) (pib:11)
[1 Oct 2009 7:25]
Bugs System
Pushed into 5.1.39-ndb-7.0.9 (revid:jonas@mysql.com-20091001072547-kv17uu06hfjhgjay) (version source revid:jonas@mysql.com-20091001071652-irejtnumzbpsbgk2) (merge vers: 5.1.39-ndb-7.0.9) (pib:11)
[1 Oct 2009 13:25]
Bugs System
Pushed into 5.1.39-ndb-7.1.0 (revid:jonas@mysql.com-20091001123013-g9ob2tsyctpw6zs0) (version source revid:jonas@mysql.com-20091001123013-g9ob2tsyctpw6zs0) (merge vers: 5.1.39-ndb-7.1.0) (pib:11)
[2 Oct 2009 1:26]
Paul DuBois
Moved 5.4 changelog entry from 5.4.4 to 5.4.3.
[5 Oct 2009 10:50]
Bugs System
Pushed into 5.1.39-ndb-6.2.19 (revid:jonas@mysql.com-20091005103850-dwij2dojwpvf5hi6) (version source revid:jonas@mysql.com-20090930185117-bhud4ek1y0hsj1nv) (merge vers: 5.1.39-ndb-6.2.19) (pib:11)
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.049 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.