[MDEV-10799] [Draft] Server crashes in in update_depend_map_for_order Created: 2016-09-12  Updated: 2016-09-12  Resolved: 2016-09-12

Status: Closed
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: 10.2
Fix Version/s: 10.2.2

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None


 Description   

#3  <signal handler called>
#4  0x00007f0deab6f842 in update_depend_map_for_order (join=0x7f0dd2933400, order=0x7f0dd2aa9bd8) at /data/src/10.2-bug/sql/sql_select.cc:12108
#5  0x00007f0deab6fa76 in remove_const (join=0x7f0dd2933400, first_order=0x7f0dd2aa9bd8, cond=0x7f0dd2927690, change_list=true, simple_order=0x7f0dd29336cc) at /data/src/10.2-bug/sql/sql_select.cc:12187
#6  0x00007f0deab53c79 in JOIN::optimize_inner (this=0x7f0dd2933400) at /data/src/10.2-bug/sql/sql_select.cc:1809
#7  0x00007f0deab51344 in JOIN::optimize (this=0x7f0dd2933400) at /data/src/10.2-bug/sql/sql_select.cc:1076
#8  0x00007f0deab59798 in mysql_select (thd=0x7f0dd2816070, tables=0x7f0dd2865b00, wild_num=0, fields=..., conds=0x7f0dd2927690, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748609, result=0x7f0dd29333e0, unit=0x7f0dd2819b18, select_lex=0x7f0dd281a250) at /data/src/10.2-bug/sql/sql_select.cc:3535
#9  0x00007f0deab4eea1 in handle_select (thd=0x7f0dd2816070, lex=0x7f0dd2819a50, result=0x7f0dd29333e0, setup_tables_done_option=0) at /data/src/10.2-bug/sql/sql_select.cc:373
#10 0x00007f0deab1e938 in execute_sqlcom_select (thd=0x7f0dd2816070, all_tables=0x7f0dd2865b00) at /data/src/10.2-bug/sql/sql_parse.cc:6345
#11 0x00007f0deab1476e in mysql_execute_command (thd=0x7f0dd2816070) at /data/src/10.2-bug/sql/sql_parse.cc:3376
#12 0x00007f0deab220d7 in mysql_parse (thd=0x7f0dd2816070, rawbuf=0x7f0dd2864088 "SELECT DISTINCT `pk` AS ifield1, `col_varchar_key` AS cfield1, `pk` AS ifield2 FROM ( SELECT * FROM view_5072_inline_0 ) AS alias1 WHERE ( alias1.`pk` > 146 AND alias1.`pk` < ( 60 + 78 ) OR ( alias1.`"..., length=464, parser_state=0x7f0deba63dd0, is_com_multi=false, is_next_command=false) at /data/src/10.2-bug/sql/sql_parse.cc:7774
#13 0x00007f0deab104c5 in dispatch_command (command=COM_QUERY, thd=0x7f0dd2816070, packet=0x7f0dd2858071 "SELECT DISTINCT `pk` AS ifield1, `col_varchar_key` AS cfield1, `pk` AS ifield2 FROM ( SELECT * FROM view_5072_inline_0 ) AS alias1 WHERE ( alias1.`pk` > 146 AND alias1.`pk` < ( 60 + 78 ) OR ( alias1.`"..., packet_length=465, is_com_multi=false, is_next_command=false) at /data/src/10.2-bug/sql/sql_parse.cc:1805
#14 0x00007f0deab0eef6 in do_command (thd=0x7f0dd2816070) at /data/src/10.2-bug/sql/sql_parse.cc:1365
#15 0x00007f0deac4a7ba in do_handle_one_connection (connect=0x7f0de7871ad0) at /data/src/10.2-bug/sql/sql_connect.cc:1354
#16 0x00007f0deac4a547 in handle_one_connection (arg=0x7f0de7871ad0) at /data/src/10.2-bug/sql/sql_connect.cc:1260
#17 0x00007f0deaf58b26 in pfs_spawn_thread (arg=0x7f0de13c6ef0) at /data/src/10.2-bug/storage/perfschema/pfs.cc:1862
#18 0x00007f0dea1930a4 in start_thread (arg=0x7f0deba65300) at pthread_create.c:309
#19 0x00007f0de834b87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

--disable_abort_on_error
--source include/have_xtradb.inc
	CREATE TABLE A (
 			pk INTEGER AUTO_INCREMENT,
 			col_int_nokey INTEGER /*! NULL */,
 			col_int_key INTEGER /*! NULL */,
 
 			col_date_key DATE /*! NULL */,
 			col_date_nokey DATE /*! NULL */,
 
 			col_time_key TIME /*! NULL */,
 			col_time_nokey TIME /*! NULL */,
 
 			col_datetime_key DATETIME /*! NULL */,
 			col_datetime_nokey DATETIME /*! NULL */,
 
 			col_varchar_key VARCHAR(1) /*! NULL */,
 			col_varchar_nokey VARCHAR(1) /*! NULL */,
 
 			PRIMARY KEY (pk),
 			KEY (col_int_key),
 			KEY (col_date_key),
 			KEY (col_time_key),
 			KEY (col_datetime_key),
 			KEY (col_varchar_key, col_int_key)
 		)  ENGINE=InnoDB /* QUERY_NO 2 CON_ID 4 */;
	CREATE TABLE B (
 			pk INTEGER AUTO_INCREMENT,
 			col_int_nokey INTEGER /*! NULL */,
 			col_int_key INTEGER /*! NULL */,
 
 			col_date_key DATE /*! NULL */,
 			col_date_nokey DATE /*! NULL */,
 
 			col_time_key TIME /*! NULL */,
 			col_time_nokey TIME /*! NULL */,
 
 			col_datetime_key DATETIME /*! NULL */,
 			col_datetime_nokey DATETIME /*! NULL */,
 
 			col_varchar_key VARCHAR(1) /*! NULL */,
 			col_varchar_nokey VARCHAR(1) /*! NULL */,
 
 			PRIMARY KEY (pk),
 			KEY (col_int_key),
 			KEY (col_date_key),
 			KEY (col_time_key),
 			KEY (col_datetime_key),
 			KEY (col_varchar_key, col_int_key)
 		)  ENGINE=InnoDB /* QUERY_NO 4 CON_ID 4 */;
	CREATE TABLE C (
 			pk INTEGER AUTO_INCREMENT,
 			col_int_nokey INTEGER /*! NULL */,
 			col_int_key INTEGER /*! NULL */,
 
 			col_date_key DATE /*! NULL */,
 			col_date_nokey DATE /*! NULL */,
 
 			col_time_key TIME /*! NULL */,
 			col_time_nokey TIME /*! NULL */,
 
 			col_datetime_key DATETIME /*! NULL */,
 			col_datetime_nokey DATETIME /*! NULL */,
 
 			col_varchar_key VARCHAR(1) /*! NULL */,
 			col_varchar_nokey VARCHAR(1) /*! NULL */,
 
 			PRIMARY KEY (pk),
 			KEY (col_int_key),
 			KEY (col_date_key),
 			KEY (col_time_key),
 			KEY (col_datetime_key),
 			KEY (col_varchar_key, col_int_key)
 		)  ENGINE=InnoDB /* QUERY_NO 7 CON_ID 4 */;
	CREATE TABLE AA (
 			pk INTEGER AUTO_INCREMENT,
 			col_int_nokey INTEGER /*! NULL */,
 			col_int_key INTEGER /*! NULL */,
 
 			col_date_key DATE /*! NULL */,
 			col_date_nokey DATE /*! NULL */,
 
 			col_time_key TIME /*! NULL */,
 			col_time_nokey TIME /*! NULL */,
 
 			col_datetime_key DATETIME /*! NULL */,
 			col_datetime_nokey DATETIME /*! NULL */,
 
 			col_varchar_key VARCHAR(1) /*! NULL */,
 			col_varchar_nokey VARCHAR(1) /*! NULL */,
 
 			PRIMARY KEY (pk),
 			KEY (col_int_key),
 			KEY (col_date_key),
 			KEY (col_time_key),
 			KEY (col_datetime_key),
 			KEY (col_varchar_key, col_int_key)
 		)  AUTO_INCREMENT=10 ENGINE=InnoDB /* QUERY_NO 17 CON_ID 4 */;
	CREATE TABLE CC (
 			pk INTEGER AUTO_INCREMENT,
 			col_int_nokey INTEGER /*! NULL */,
 			col_int_key INTEGER /*! NULL */,
 
 			col_date_key DATE /*! NULL */,
 			col_date_nokey DATE /*! NULL */,
 
 			col_time_key TIME /*! NULL */,
 			col_time_nokey TIME /*! NULL */,
 
 			col_datetime_key DATETIME /*! NULL */,
 			col_datetime_nokey DATETIME /*! NULL */,
 
 			col_varchar_key VARCHAR(1) /*! NULL */,
 			col_varchar_nokey VARCHAR(1) /*! NULL */,
 
 			PRIMARY KEY (pk),
 			KEY (col_int_key),
 			KEY (col_date_key),
 			KEY (col_time_key),
 			KEY (col_datetime_key),
 			KEY (col_varchar_key, col_int_key)
 		)  AUTO_INCREMENT=10 ENGINE=InnoDB /* QUERY_NO 22 CON_ID 4 */;
	CREATE OR REPLACE VIEW view_5072_inline_0 AS  SELECT DISTINCT SQ1_alias1.* FROM ( `cc` AS SQ1_alias1 RIGHT JOIN `a` AS SQ1_alias2 ON (SQ1_alias2.`col_varchar_key` = SQ1_alias1.`col_varchar_nokey` ) )  /* QUERY_NO 453 CON_ID 13 */;
	CREATE OR REPLACE VIEW view_5072_inline_1 AS  SELECT SQ2_alias1.`col_int_nokey` AS SQ2_ifield1, SQ2_alias1.`pk` AS SQ2_ifield2 FROM ( `aa` AS SQ2_alias1, `aa` AS SQ2_alias2 ) WHERE SQ2_alias2.`pk` = SQ2_alias1.`col_int_key`  /* QUERY_NO 455 CON_ID 13 */;
	CREATE OR REPLACE VIEW view_5072_inline_2 AS  SELECT SQ3_alias1.`pk` AS SQ3_ifield1, MIN( SQ3_alias1.`col_int_nokey` ) AS SQ3_ifield2 FROM ( `b` AS SQ3_alias1 INNER JOIN `c` AS SQ3_alias2 ON (SQ3_alias2.`col_int_nokey` = SQ3_alias1.`pk` ) )  /* QUERY_NO 457 CON_ID 13 */;
 
SELECT DISTINCT `pk` AS ifield1, `col_varchar_key` AS cfield1, `pk` AS ifield2 FROM ( SELECT * FROM view_5072_inline_0 ) AS alias1 WHERE ( alias1.`pk` > 146 AND alias1.`pk` < ( 60 + 78 ) OR ( alias1.`pk` > 3 AND alias1.`pk` < ( 29 + 25 ) AND ( alias1.`col_int_key`, alias1.`pk` ) IN ( SELECT * FROM view_5072_inline_1 ) AND ( alias1.`pk`, alias1.`col_int_nokey` ) IN ( SELECT * FROM view_5072_inline_2 ) ) AND alias1.`col_varchar_key` != alias1.`col_varchar_key` ) ;



 Comments   
Comment by Elena Stepanova [ 2016-09-12 ]

Fixed by this patch:

commit 3630a00e258273ada7f783a514600aafcd3f13f9
Author: Igor Babaev <igor@askmonty.org>
Date:   Mon Sep 12 00:07:02 2016 -0700
 
    Fixed bug mdev-10782.
    This bug in the code of Item_ref::build_clone could
    cause corruption of items in where conditions.
    Also made sure that equality predicates extracted
    from multiple equality items to be pushed into
    materialized views were cloned.

Generated at Thu Feb 08 07:45:00 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.