Bug #52177 crash with explain, row comparison, join, text field............................
| Submitted: | 18 Mar 2010 11:52 | Modified: | 20 Jun 2010 17:53 |
|---|---|---|---|
| Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Optimizer | Severity: | S1 (Critical) |
| Version: | 5.0.90, 5.1.37, 5.1.45, 5.6.99-m4 | OS: | Any |
| Assigned to: | Sergei Glukhov | CPU Architecture: | Any |
| Tags: | crash, explain, row | ||
[18 Mar 2010 11:52]
Shane Bester
[18 Mar 2010 11:56]
Shane Bester
full outputs from valgrind
Attachment: bug52177_5.6.99-m4-valgrind-output.txt (text/plain), 26.04 KiB.
[18 Mar 2010 12:05]
Valeriy Kravchuk
Valgrind errors are easily repeatable: ... ==6919== Conditional jump or move depends on uninitialised value(s) ==6919== at 0x828BCC8: Field_blob::val_str(String*, String*) (field.cc:7517) ==6919== by 0x81F361E: Item_field::val_str(String*) (item.cc:2078) ==6919== by 0x8238987: Arg_comparator::compare_e_string() (item_cmpfunc.cc:1326) ==6919== by 0x8216A0E: Arg_comparator::compare() (item_cmpfunc.h:84) ==6919== by 0x8233278: Arg_comparator::compare_e_row() (item_cmpfunc.cc:1626) ==6919== by 0x8216A0E: Arg_comparator::compare() (item_cmpfunc.h:84) ==6919== by 0x8236E2A: Item_func_equal::val_int() (item_cmpfunc.cc:1875) ==6919== by 0x81F3F81: Item::val_bool() (item.cc:184) ==6919== by 0x8235B90: Item_cond_and::val_int() (item_cmpfunc.cc:4389) ==6919== by 0x835FA41: make_join_select(JOIN*, SQL_SELECT*, Item*) (sql_select.cc:6293) ==6919== by 0x836C959: JOIN::optimize() (sql_select.cc:1122) ==6919== by 0x836FC5E: mysql_select(THD*, Item***, TABLE_LIST*, unsigned, List<Item>&, Item*, unsigned, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:2492) ==6919== by 0x8370179: mysql_explain_union(THD*, st_select_lex_unit*, select_result*) (sql_select.cc:16900) ==6919== by 0x82D8B36: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:4658) ==6919== by 0x82DAA80: mysql_execute_command(THD*) (sql_parse.cc:2168) ==6919== by 0x82E2CD0: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5712) ==6919== by 0x82E3845: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1024) ==6919== by 0x82E4DA4: do_command(THD*) (sql_parse.cc:710) ==6919== by 0x82D2000: do_handle_one_connection(THD*) (sql_connect.cc:1174) ==6919== by 0x82D20BE: handle_one_connection (sql_connect.cc:1113) ==6919== by 0x40384FA: start_thread (in /lib/tls/i686/cmov/libpthread-2.7.so) ==6919== by 0x4195E5D: clone (in /lib/tls/i686/cmov/libc-2.7.so)
[18 Mar 2010 18:10]
Valeriy Kravchuk
This is not a recent regression, as 5.1.37 also crashes (on Mac in this case):
77-52-28-202:5.1 openxs$ bin/mysql -uroot test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.37 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> drop table if exists `t1`;
Query OK, 0 rows affected (0.02 sec)
mysql> create table `t1` (`a` tinyint,`b` text charset latin1, key (`a`)) engine=myisam;
Query OK, 0 rows affected (0.21 sec)
mysql> insert into `t1` values (0,''),(0,'');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> flush tables;
Query OK, 0 rows affected (0.00 sec)
mysql> explain select 1 from `t1` left join `t1` `a` on 1
-> where row(`t1`.`a`,1111.11)= row(1111.11,1111.11)and
-> row(`t1`.`b`,1111.11)<=> row('','');
ERROR 2013 (HY000): Lost connection to MySQL server during query
[22 Mar 2010 13:44]
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/104001 3412 Sergey Glukhov 2010-03-22 Bug#52177 crash with explain, row comparison, join, text field The crash is the result of an attempt made by JOIN::optimize to evaluate the WHERE condition when no records have been actually read. The fix is to remove erroneous 'outer_join' variable check. @ mysql-test/r/join.result test result @ mysql-test/t/join.test test case @ sql/sql_select.cc removed erroneous 'outer_join' variable check.
[30 Mar 2010 7:22]
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/104594 2854 Sergey Glukhov 2010-03-26 Bug#52177 crash with explain, row comparison, join, text field The crash is the result of an attempt made by JOIN::optimize to evaluate the WHERE condition when no records have been actually read. The fix is to remove erroneous 'outer_join' variable check. @ mysql-test/r/join.result test result @ mysql-test/t/join.test test case @ sql/sql_select.cc removed erroneous 'outer_join' variable check.
[30 Mar 2010 7:45]
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/104596 2854 Sergey Glukhov 2010-03-26 Bug#52177 crash with explain, row comparison, join, text field The crash is the result of an attempt made by JOIN::optimize to evaluate the WHERE condition when no records have been actually read. The fix is to remove erroneous 'outer_join' variable check. @ mysql-test/r/join.result test result @ mysql-test/t/join.test test case @ sql/sql_select.cc removed erroneous 'outer_join' variable check.
[6 Apr 2010 7:53]
Bugs System
Pushed into 5.0.91 (revid:joro@sun.com-20100406075152-flz4btqirl9hly31) (version source revid:sergey.glukhov@sun.com-20100326074424-vdr03i38fv28dktk) (merge vers: 5.0.91) (pib:16)
[6 Apr 2010 8:01]
Bugs System
Pushed into 5.1.46 (revid:sergey.glukhov@sun.com-20100405111026-7kz1p8qlzglqgfmu) (version source revid:sergey.glukhov@sun.com-20100326074618-e23uktaya427f2tg) (merge vers: 5.1.46) (pib:16)
[15 Apr 2010 23:14]
Paul DuBois
Noted in 5.0.91, 5.1.46 changelogs. The optimizer could attempt to evaluate the WHERE clause before any rows had been read, resulting in a server crash. Setting report to Need Merge pending push to Celosia.
[28 May 2010 5:52]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:alik@sun.com-20100422150750-vp0n37kp9ywq5ghf) (pib:16)
[28 May 2010 6:21]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:alik@sun.com-20100422150658-fkhgnwwkyugtxrmu) (merge vers: 6.0.14-alpha) (pib:16)
[28 May 2010 6:49]
Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:alexey.kopytov@sun.com-20100403173551-52r97erqowlqwkon) (merge vers: 5.5.4-m3) (pib:16)
[30 May 2010 0:27]
Paul DuBois
Noted in 5.5.5, 6.0.14 changelogs.
[17 Jun 2010 11:52]
Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 12:30]
Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:martin.skold@mysql.com-20100609211156-tsac5qhw951miwtt) (merge vers: 5.1.46-ndb-6.2.19) (pib:16)
[17 Jun 2010 13:18]
Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
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.