[MDEV-2326] LP:794038 - Crash in setup_tables in maria-5.3-mwl106 Created: 2011-06-07  Updated: 2015-02-02  Resolved: 2012-10-04

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: Philip Stoev (Inactive) Assignee: Igor Babaev
Resolution: Fixed Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug794038.xml    

 Description   

Not repeatable in maria-5.2, maria-5.3. Repeatable in maria-5.3-mwl106. Backtrace:

#5 0x0830314c in setup_tables (thd=0xa104738, context=0xae61375c, from_clause=0xae6137ec, tables=0xae613ef0, leaves=..., select_insert=false,
full_table_list=false) at sql_base.cc:7798
#6 0x08303627 in setup_tables_and_check_access (thd=0xa104738, context=0xae61375c, from_clause=0xae6137ec, tables=0xae613ef0, leaves=...,
select_insert=false, want_access_first=1, want_access=1, full_table_list=false) at sql_base.cc:7917
#7 0x08316a22 in JOIN::prepare (this=0xae630030, rref_pointer_array=0xae613848, tables_init=0xae613ef0, wild_num=0, conds_init=0x0, og_num=0,
order_init=0x0, group_init=0x0, having_init=0x0, proc_param_init=0x0, select_lex_arg=0xae613728, unit_arg=0xae61344c) at sql_select.cc:520
#8 0x08468257 in st_select_lex_unit::prepare (this=0xae61344c, thd_arg=0xa104738, sel_result=0xae629018, additional_options=0) at sql_union.cc:316
#9 0x0846b084 in mysql_derived_prepare (thd=0xa104738, lex=0xa105df8, derived=0xae612f68) at sql_derived.cc:639
#10 0x0846a6cf in mysql_handle_single_derived (lex=0xa105df8, derived=0xae612f68, phases=2) at sql_derived.cc:171
#11 0x08314f7c in TABLE_LIST::handle_derived (this=0xae612f68, lex=0xa105df8, phases=2) at table.cc:5762
#12 0x0846a747 in mysql_handle_list_of_derived (lex=0xa105df8, table_list=0xae612f68, phases=2) at sql_derived.cc:202
#13 0x0834eb73 in mysql_prepare_insert (thd=0xa104738, table_list=0xae612f68, table=0x0, fields=..., values=0xae6131b0, update_fields=...,
update_values=..., duplic=DUP_ERROR, where=0xb6d4e6b0, select_insert=false, check_fields=true, abort_on_warning=false) at sql_insert.cc:1278
#14 0x0834d3de in mysql_insert (thd=0xa104738, table_list=0xae612f68, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR,
ignore=false) at sql_insert.cc:669
#15 0x082ab4e4 in mysql_execute_command (thd=0xa104738) at sql_parse.cc:3175
#16 0x082b419d in mysql_parse (thd=0xa104738, rawbuf=0xae612eb0 "INSERT INTO view3 SET field2 = 'i'", length=34, found_semicolon=0xb6d4f228)
at sql_parse.cc:6090
#17 0x082a657b in dispatch_command (command=COM_QUERY, thd=0xa104738, packet=0xa15eff9 "INSERT INTO view3 SET field2 = 'i' ", packet_length=35)
at sql_parse.cc:1206
#18 0x082a5a01 in do_command (thd=0xa104738) at sql_parse.cc:904
#19 0x082a2a7c in handle_one_connection (arg=0xa104738) at sql_connect.cc:1177
#20 0x00821919 in start_thread () from /lib/libpthread.so.0
#21 0x0076acce in clone () from /lib/libc.so.6

test case:

CREATE TABLE t1 (field1 integer);

--disable_abort_on_error

CREATE OR REPLACE ALGORITHM = MERGE VIEW view1 AS SELECT * FROM t1;
CREATE OR REPLACE ALGORITHM = TEMPTABLE VIEW view4 AS SELECT * FROM t1;
CREATE OR REPLACE ALGORITHM = MERGE VIEW view2 AS SELECT * FROM view4;
CREATE OR REPLACE ALGORITHM = TEMPTABLE VIEW view3 AS SELECT * FROM view1;
CREATE OR REPLACE ALGORITHM = MERGE VIEW view1 AS SELECT * FROM view2;
INSERT INTO view3 SET field2 = 'i' ;



 Comments   
Comment by Igor Babaev [ 2011-06-07 ]

Re: Crash in setup_tables in maria-5.3-mwl106
The following example demonstrates the problem:

MariaDB [test]> CREATE TABLE t1 (a int);
Query OK, 0 rows affected (0.02 sec)

MariaDB [test]> CREATE ALGORITHM = TEMPTABLE VIEW v1 AS SELECT * FROM t1;
Query OK, 0 rows affected (0.01 sec)

MariaDB [test]> CREATE ALGORITHM = MERGE VIEW v2 AS SELECT * FROM v1;
Query OK, 0 rows affected (0.00 sec)

MariaDB [test]> CREATE ALGORITHM = TEMPTABLE VIEW v3 AS SELECT * FROM v2;
Query OK, 0 rows affected (0.01 sec)

MariaDB [test]> INSERT INTO v1 VALUES (1);
ERROR 1471 (HY000): The target table v1 of the INSERT is not insertable-into
MariaDB [test]> INSERT INTO v2 VALUES (1);
ERROR 1471 (HY000): The target table v2 of the INSERT is not insertable-into
MariaDB [test]> INSERT INTO v3 VALUES (1);
ERROR 2013 (HY000): Lost connection to MySQL server during query <-- !!!

while this test case works correctly:

MariaDB [test]> CREATE ALGORITHM = MERGE VIEW v4 AS SELECT * FROM t1;
Query OK, 0 rows affected (0.01 sec)

MariaDB [test]> CREATE ALGORITHM = TEMPTABLE VIEW v5 AS SELECT * FROM v4;
Query OK, 0 rows affected (0.01 sec)

MariaDB [test]> INSERT INTO v5 VALUES (1);
ERROR 1471 (HY000): The target table v5 of the INSERT is not insertable-into

Comment by Igor Babaev [ 2011-06-07 ]

Re: Crash in setup_tables in maria-5.3-mwl106
Similar problems can be observed for DELETE and UPDATE:

MariaDB [test]> DELETE FROM v1;
ERROR 1288 (HY000): The target table v1 of the DELETE is not updatable
MariaDB [test]> DELETE FROM v2;
ERROR 1288 (HY000): The target table v2 of the DELETE is not updatable
MariaDB [test]> DELETE FROM v3;
ERROR 2013 (HY000): Lost connection to MySQL server during query

MariaDB [test]> UPDATE v1 SET a=0;
ERROR 1288 (HY000): The target table v1 of the UPDATE is not updatable
MariaDB [test]> UPDATE v2 SET a=0;
ERROR 1288 (HY000): The target table v2 of the UPDATE is not updatable
MariaDB [test]> UPDATE v3 SET a=0;
ERROR 2013 (HY000): Lost connection to MySQL server during query

Comment by Rasmus Johansson (Inactive) [ 2011-12-13 ]

Launchpad bug id: 794038

Generated at Thu Feb 08 06:41:05 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.