diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2020-03-11 14:05:41 +0100 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2020-03-11 14:05:41 +0100 |
commit | 3c9bc0ce19c260401b4dd4c33273487829b29df5 (patch) | |
tree | c0ac64399b70d571ec2e41d4dde2d38e6ebb1322 | |
parent | 8fa1b6bb88be39001b98bab071b957da3c271a17 (diff) | |
parent | 02343c4a54b055ea3483075219bb3ce010c33671 (diff) | |
download | mariadb-git-3c9bc0ce19c260401b4dd4c33273487829b29df5.tar.gz |
Merge branch '10.2' into 10.3
-rw-r--r-- | extra/mariabackup/xtrabackup.cc | 4 | ||||
-rw-r--r-- | mysql-test/main/disabled.def | 2 | ||||
-rw-r--r-- | mysql-test/main/events_restart.result | 27 | ||||
-rw-r--r-- | mysql-test/main/events_restart.test | 31 | ||||
-rw-r--r-- | mysql-test/main/mysql_client_test.test | 2 | ||||
-rw-r--r-- | mysql-test/main/partition_innodb.result | 12 | ||||
-rw-r--r-- | mysql-test/main/partition_innodb.test | 24 | ||||
-rw-r--r-- | mysql-test/suite/galera/disabled.def | 1 | ||||
-rw-r--r-- | mysql-test/suite/galera/r/lp1376747-4.result | 9 | ||||
-rw-r--r-- | mysql-test/suite/galera/t/lp1376747-4.test | 12 | ||||
-rw-r--r-- | sql/events.cc | 8 | ||||
-rw-r--r-- | sql/sql_yacc_ora.yy | 4 | ||||
-rw-r--r-- | storage/innobase/page/page0zip.cc | 5 |
13 files changed, 94 insertions, 47 deletions
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index ac307fda04e..2cfeb87ba79 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -3127,13 +3127,13 @@ xb_load_single_table_tablespace( } } - ut_free(name); - delete file; if (err != DB_SUCCESS && xtrabackup_backup && !is_empty_file) { die("Failed to not validate first page of the file %s, error %d",name, (int)err); } + + ut_free(name); } /** Scan the database directories under the MySQL datadir, looking for diff --git a/mysql-test/main/disabled.def b/mysql-test/main/disabled.def index 93fff886791..8ba5b271c2b 100644 --- a/mysql-test/main/disabled.def +++ b/mysql-test/main/disabled.def @@ -14,8 +14,6 @@ events_time_zone : Test is not predictable as it depends on precise timi read_many_rows_innodb : Bug#11748886 2010-11-15 mattiasj report already exists mysql_embedded : Bug#12561297 2011-05-14 Anitha Dependent on PB2 changes - eventum#41836 #show_explain : Psergey: random timeout in range-checked-for-each record query. -innodb-wl5522-debug-zip : broken upstream -innodb_bug12902967 : broken upstream file_contents : MDEV-6526 these files are not installed anymore max_statement_time : cannot possibly work, depends on timing partition_open_files_limit : open_files_limit check broken by MDEV-18360 diff --git a/mysql-test/main/events_restart.result b/mysql-test/main/events_restart.result index e22cfa011f2..ab90f7ff2f7 100644 --- a/mysql-test/main/events_restart.result +++ b/mysql-test/main/events_restart.result @@ -110,3 +110,30 @@ Db Name Definer Time zone Type Execute at Interval value Interval field Starts E test e1 root@localhost SYSTEM RECURRING # 1 SECOND # # DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci DROP EVENT e1; # end test for bug#11748899 +# +# Test for MDEV-21758 Events switched randomly to SLAVESIDE_DISABLED +# +create event ev on schedule every 1 minute do set @a= 1; +select name, originator, status from mysql.event; +name originator status +ev 1 ENABLED +# +# Restarting server with server_id=100 +# +select @@global.server_id; +@@global.server_id +100 +select name, originator, status from mysql.event; +name originator status +ev 1 ENABLED +set global server_id= 1; +# +# Restarting server with the original server_id=1 +# +select @@global.server_id; +@@global.server_id +1 +select name, originator, status from mysql.event; +name originator status +ev 1 ENABLED +drop event ev; diff --git a/mysql-test/main/events_restart.test b/mysql-test/main/events_restart.test index ca674170e96..f56bd32b71d 100644 --- a/mysql-test/main/events_restart.test +++ b/mysql-test/main/events_restart.test @@ -141,3 +141,34 @@ SHOW EVENTS; DROP EVENT e1; --echo # end test for bug#11748899 + +--echo # +--echo # Test for MDEV-21758 Events switched randomly to SLAVESIDE_DISABLED +--echo # + +create event ev on schedule every 1 minute do set @a= 1; +select name, originator, status from mysql.event; + +--let $server_id= `SELECT @@global.server_id` + +--echo # +--echo # Restarting server with server_id=100 +--echo # +--let $restart_parameters= --server-id=100 +--source include/restart_mysqld.inc + +select @@global.server_id; +select name, originator, status from mysql.event; +--eval set global server_id= $server_id + +--echo # +--echo # Restarting server with the original server_id=$server_id +--echo # +--let $restart_parameters= +--source include/restart_mysqld.inc + +select @@global.server_id; +select name, originator, status from mysql.event; + +# Cleanup +drop event ev; diff --git a/mysql-test/main/mysql_client_test.test b/mysql-test/main/mysql_client_test.test index de4c33694ab..fc2e3a00ed5 100644 --- a/mysql-test/main/mysql_client_test.test +++ b/mysql-test/main/mysql_client_test.test @@ -2,8 +2,6 @@ -- source include/not_embedded.inc # need to have the dynamic loading turned on for the client plugin tests --source include/have_plugin_auth.inc -# This test is slow on buildbot. ---source include/big_test.inc # Run test with default character set --source include/default_charset.inc diff --git a/mysql-test/main/partition_innodb.result b/mysql-test/main/partition_innodb.result index 5c63fcfbbc9..70bfa4840ee 100644 --- a/mysql-test/main/partition_innodb.result +++ b/mysql-test/main/partition_innodb.result @@ -386,33 +386,33 @@ DROP TABLE t1; create table t1 (a int) engine=innodb partition by hash(a) ; show table status like 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 InnoDB 10 Dynamic 2 8192 16384 0 0 # NULL # NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 InnoDB 10 Dynamic 2 8192 16384 0 0 0 NULL # NULL NULL latin1_swedish_ci NULL partitioned 0 N drop table t1; create table t1 (a int) engine = innodb partition by key (a); show table status; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 InnoDB 10 Dynamic 2 8192 16384 0 0 # NULL # NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 InnoDB 10 Dynamic 2 8192 16384 0 0 0 NULL Create_time NULL NULL latin1_swedish_ci NULL partitioned 0 N insert into t1 values (0), (1), (2), (3); show table status; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 InnoDB 10 Dynamic 4 4096 16384 0 0 # NULL # NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 InnoDB 10 Dynamic 4 4096 16384 0 0 0 NULL Create_time Update_time NULL latin1_swedish_ci NULL partitioned 0 N drop table t1; create table t1 (a int auto_increment primary key) engine = innodb partition by key (a); show table status; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 InnoDB 10 Dynamic 2 8192 16384 0 0 # 1 # NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 InnoDB 10 Dynamic 2 8192 16384 0 0 0 1 Create_time NULL NULL latin1_swedish_ci NULL partitioned 0 N insert into t1 values (NULL), (NULL), (NULL), (NULL); show table status; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 InnoDB 10 Dynamic 4 4096 16384 0 0 # 5 # NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 InnoDB 10 Dynamic 4 4096 16384 0 0 0 5 Create_time Update_time NULL latin1_swedish_ci NULL partitioned 0 N insert into t1 values (NULL), (NULL), (NULL), (NULL); show table status; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 InnoDB 10 Dynamic 8 2048 16384 0 0 # 9 # NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 InnoDB 10 Dynamic 8 2048 16384 0 0 0 9 Create_time Update_time NULL latin1_swedish_ci NULL partitioned 0 N drop table t1; create table t1 (a int) partition by key (a) diff --git a/mysql-test/main/partition_innodb.test b/mysql-test/main/partition_innodb.test index f7ce9b03a54..6a89a0a6467 100644 --- a/mysql-test/main/partition_innodb.test +++ b/mysql-test/main/partition_innodb.test @@ -401,9 +401,7 @@ DROP TABLE t1; # Bug #14673: Wrong InnoDB default row format # create table t1 (a int) engine=innodb partition by hash(a) ; -# Data_free for InnoDB tablespace varies depending on which -# tests have been run before this one ---replace_column 10 # 12 # +--replace_column 12 # show table status like 't1'; drop table t1; @@ -413,33 +411,23 @@ drop table t1; create table t1 (a int) engine = innodb partition by key (a); -# Data_free for InnoDB tablespace varies depending on which -# tests have been run before this one ---replace_column 10 # 12 # +--replace_column 12 Create_time show table status; insert into t1 values (0), (1), (2), (3); -# Data_free for InnoDB tablespace varies depending on which -# tests have been run before this one ---replace_column 10 # 12 # +--replace_column 12 Create_time 13 Update_time show table status; drop table t1; create table t1 (a int auto_increment primary key) engine = innodb partition by key (a); -# Data_free for InnoDB tablespace varies depending on which -# tests have been run before this one ---replace_column 10 # 12 # +--replace_column 12 Create_time show table status; insert into t1 values (NULL), (NULL), (NULL), (NULL); -# Data_free for InnoDB tablespace varies depending on which -# tests have been run before this one ---replace_column 10 # 12 # +--replace_column 12 Create_time 13 Update_time show table status; insert into t1 values (NULL), (NULL), (NULL), (NULL); -# Data_free for InnoDB tablespace varies depending on which -# tests have been run before this one ---replace_column 10 # 12 # +--replace_column 12 Create_time 13 Update_time show table status; drop table t1; diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index 4179a556841..dadfa8ad781 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -30,6 +30,7 @@ galera_sst_mariabackup_table_options: MDEV-19741 Galera test failure on galera.g galera_var_innodb_disallow_writes : MDEV-20928 galera.galera_var_innodb_disallow_writes galera_var_node_address : MDEV-20485 Galera test failure galera_wan : MDEV-17259 Test failure on galera.galera_wan +lp1376747-4 : MDEV-21911 Galera test failure on lp1376747-4 partition : MDEV-19958 Galera test failure on galera.partition query_cache: MDEV-15805 Test failure on galera.query_cache sql_log_bin : MDEV-21491 galera.sql_log_bin diff --git a/mysql-test/suite/galera/r/lp1376747-4.result b/mysql-test/suite/galera/r/lp1376747-4.result index f1d32aa8f69..a7c1e7d6e9d 100644 --- a/mysql-test/suite/galera/r/lp1376747-4.result +++ b/mysql-test/suite/galera/r/lp1376747-4.result @@ -3,18 +3,13 @@ CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); connection node_2; SET session wsrep_sync_wait=0; -SET session wsrep_causal_reads=OFF; -Warnings: -Warning 1287 '@@wsrep_causal_reads' is deprecated and will be removed in a future release. Please use '@@wsrep_sync_wait=1' instead FLUSH TABLE WITH READ LOCK; connection node_1; ALTER TABLE t1 ADD COLUMN f2 INTEGER; INSERT INTO t1 VALUES (2,3); connection node_2a; SET session wsrep_sync_wait=0; -SET session wsrep_causal_reads=OFF; -Warnings: -Warning 1287 '@@wsrep_causal_reads' is deprecated and will be removed in a future release. Please use '@@wsrep_sync_wait=1' instead +# node_1 DDL should not yet be applied SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -24,6 +19,7 @@ t1 CREATE TABLE `t1` ( FLUSH TABLES t1 WITH READ LOCK;; connection node_2; UNLOCK TABLES; +# node_1 DDL should not yet be applied 2 SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -32,6 +28,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=InnoDB DEFAULT CHARSET=latin1 connection node_2a; UNLOCK TABLES; +# node_1 DDL should be applied 2 SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( diff --git a/mysql-test/suite/galera/t/lp1376747-4.test b/mysql-test/suite/galera/t/lp1376747-4.test index 6ae89fe9df4..7cf922b97e5 100644 --- a/mysql-test/suite/galera/t/lp1376747-4.test +++ b/mysql-test/suite/galera/t/lp1376747-4.test @@ -17,7 +17,6 @@ INSERT INTO t1 VALUES (1); --connection node_2 SET session wsrep_sync_wait=0; -SET session wsrep_causal_reads=OFF; FLUSH TABLE WITH READ LOCK; --connection node_1 @@ -26,16 +25,19 @@ INSERT INTO t1 VALUES (2,3); --connection node_2a SET session wsrep_sync_wait=0; -SET session wsrep_causal_reads=OFF; +--echo # node_1 DDL should not yet be applied SHOW CREATE TABLE t1; + --send FLUSH TABLES t1 WITH READ LOCK; --connection node_2 ---let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE 'committed%'; +--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE LIKE '%committed%'; --source include/wait_condition.inc UNLOCK TABLES; + +--echo # node_1 DDL should not yet be applied 2 SHOW CREATE TABLE t1; --connection node_2a @@ -45,6 +47,10 @@ UNLOCK TABLES; --let $wait_condition = SELECT COUNT(*) = 2 FROM t1; --source include/wait_condition.inc +--let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 't1'; +--source include/wait_condition.inc + +--echo # node_1 DDL should be applied 2 SHOW CREATE TABLE t1; SELECT * from t1; diff --git a/sql/events.cc b/sql/events.cc index 46393e385ee..0de8f2aefb2 100644 --- a/sql/events.cc +++ b/sql/events.cc @@ -1202,9 +1202,9 @@ Events::load_events_from_db(THD *thd) #ifdef WITH_WSREP /** - IF SST is done from a galera node that is also acting as MASTER - newly synced node in galera eco-system will also copy-over the event state - enabling duplicate event in galera eco-system. + If SST is done from a galera node that is also acting as MASTER + newly synced node in galera eco-system will also copy-over the + event state enabling duplicate event in galera eco-system. DISABLE such events if the current node is not event orginator. (Also, make sure you skip disabling it if is already disabled to avoid creation of redundant action) @@ -1214,7 +1214,7 @@ Events::load_events_from_db(THD *thd) Infact, based on galera use-case it seems like it recommends to have each node with different server-id. */ - if (et->originator != thd->variables.server_id) + if (WSREP(thd) && et->originator != thd->variables.server_id) { if (et->status == Event_parse_data::SLAVESIDE_DISABLED) continue; diff --git a/sql/sql_yacc_ora.yy b/sql/sql_yacc_ora.yy index 12ac95dedee..c8620543d08 100644 --- a/sql/sql_yacc_ora.yy +++ b/sql/sql_yacc_ora.yy @@ -7970,10 +7970,10 @@ alter: lex->server_options.reset($3); } OPTIONS_SYM '(' server_options_list ')' { } /* ALTER USER foo is allowed for MySQL compatibility. */ - | ALTER opt_if_exists USER_SYM clear_privileges grant_list + | ALTER USER_SYM opt_if_exists clear_privileges grant_list opt_require_clause opt_resource_options { - Lex->create_info.set($2); + Lex->create_info.set($3); Lex->sql_command= SQLCOM_ALTER_USER; } | ALTER SEQUENCE_SYM opt_if_exists diff --git a/storage/innobase/page/page0zip.cc b/storage/innobase/page/page0zip.cc index 14e80b6331e..645032da3c2 100644 --- a/storage/innobase/page/page0zip.cc +++ b/storage/innobase/page/page0zip.cc @@ -3434,11 +3434,12 @@ page_zip_validate_low( differed. Let us ignore it. */ page_zip_fail(("page_zip_validate:" " min_rec_flag" - " (%s%lu,%lu,0x%02lx)\n", + " (%s" ULINTPF "," ULINTPF + ",0x%02x)\n", sloppy ? "ignored, " : "", page_get_space_id(page), page_get_page_no(page), - (ulong) page[offset])); + page[offset])); /* We don't check for spatial index, since the "minimum record" could be deleted when doing rtr_update_mbr_field. |