1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Merge branch '10.6' into '10.11'

This commit is contained in:
Julius Goryavsky
2024-09-17 01:21:26 +02:00
23 changed files with 644 additions and 493 deletions

View File

@@ -0,0 +1,23 @@
# MDEV-27037 mysqlbinlog emits a warning when reaching EOF before stop-datetime
set timestamp=1000000000;
CREATE TABLE t1(word VARCHAR(20));
set timestamp=1000000010;
INSERT INTO t1 VALUES ("abirvalg");
set timestamp=1000000020;
INSERT INTO t1 SELECT * FROM t1;
flush logs;
Case: Default, must not see warning.
# MYSQL_BINLOG --short-form MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
Case: Stop datetime before EOF, must not see warning.
# MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:50' MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
Case: Stop datetime between records, must not see warning.
# MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:55' MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
Case: Stop datetime at EOF, must not see warning.
# MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:55' MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
Case: Stop datetime after EOF, must see warning.
# MYSQL_BINLOG --short-form --stop-datetime='2035-01-19 03:14:05' MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
WARNING: Did not reach stop datetime '2035-01-19 03:14:05' before end of input
DROP TABLE t1;
# End of binlog_mysqlbinlog_warn_stop_datetime.test

View File

@@ -0,0 +1,13 @@
# MDEV-27037 mysqlbinlog emits a warning when reaching EOF before stop-condition
Case: Default stop position, WARNING must not appear
# MYSQL_BINLOG --short-form --start-position=4 mysql-test/std_data/master-bin.000001 --result-file=warn_pos_test_file.out 2>&1
Case: Stop position before EOF, WARNING must not appear
# MYSQL_BINLOG --short-form --start-position=4 --stop-position=97 mysql-test/std_data/master-bin.000001 --result-file=warn_pos_test_file.out 2>&1
Case: Stop position at EOF, WARNING must not appear
# MYSQL_BINLOG --short-form --start-position=4 --stop-position=98 mysql-test/std_data/master-bin.000001 --result-file=warn_pos_test_file.out 2>&1
Case: Stop position after EOF, WARNING must appear
# MYSQL_BINLOG --short-form --start-position=4 --stop-position=99 mysql-test/std_data/master-bin.000001 --result-file=warn_pos_test_file.out 2>&1
WARNING: Did not reach stop position 99 before end of input
# End of binlog_mysqlbinlog_warn_stop_position.test

View File

@@ -0,0 +1,42 @@
--echo
--echo # MDEV-27037 mysqlbinlog emits a warning when reaching EOF before stop-datetime
--echo
--source include/have_binlog_format_statement.inc
--let ignored_output_file= $MYSQLTEST_VARDIR/tmp/warn_pos_test_file.out
set timestamp=1000000000;
CREATE TABLE t1(word VARCHAR(20));
set timestamp=1000000010;
INSERT INTO t1 VALUES ("abirvalg");
set timestamp=1000000020;
INSERT INTO t1 SELECT * FROM t1;
--let MYSQLD_DATADIR= `select @@datadir;`
flush logs;
--echo Case: Default, must not see warning.
--echo # MYSQL_BINLOG --short-form MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
--exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 --result-file=$ignored_output_file 2>&1
--echo Case: Stop datetime before EOF, must not see warning.
--echo # MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:50' MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
--exec $MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:50' $MYSQLD_DATADIR/master-bin.000001 --result-file=$ignored_output_file 2>&1
--echo Case: Stop datetime between records, must not see warning.
--echo # MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:55' MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
--exec $MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:55' $MYSQLD_DATADIR/master-bin.000001 --result-file=$ignored_output_file 2>&1
--echo Case: Stop datetime at EOF, must not see warning.
--echo # MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:55' MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
--exec $MYSQL_BINLOG --short-form --stop-datetime='2001-09-08 21:46:55' $MYSQLD_DATADIR/master-bin.000001 --result-file=$ignored_output_file 2>&1
--echo Case: Stop datetime after EOF, must see warning.
--echo # MYSQL_BINLOG --short-form --stop-datetime='2035-01-19 03:14:05' MYSQLD_DATADIR/master-bin.000001 --result-file=ignored_output_file
--exec $MYSQL_BINLOG --short-form --stop-datetime='2035-01-19 03:14:05' $MYSQLD_DATADIR/master-bin.000001 --result-file=$ignored_output_file 2>&1
DROP TABLE t1;
--remove_file $ignored_output_file
--echo # End of binlog_mysqlbinlog_warn_stop_datetime.test

View File

@@ -0,0 +1,26 @@
--echo
--echo # MDEV-27037 mysqlbinlog emits a warning when reaching EOF before stop-condition
--echo
--let assert_file= $MYSQLTEST_VARDIR/tmp/warn_pos_test_file.out
--let data_file= $MYSQLTEST_VARDIR/std_data/master-bin.000001
--echo Case: Default stop position, WARNING must not appear
--echo # MYSQL_BINLOG --short-form --start-position=4 mysql-test/std_data/master-bin.000001 --result-file=warn_pos_test_file.out 2>&1
--exec $MYSQL_BINLOG --short-form --start-position=4 $data_file --result-file=$assert_file 2>&1
--echo Case: Stop position before EOF, WARNING must not appear
--echo # MYSQL_BINLOG --short-form --start-position=4 --stop-position=97 mysql-test/std_data/master-bin.000001 --result-file=warn_pos_test_file.out 2>&1
--exec $MYSQL_BINLOG --short-form --start-position=4 --stop-position=97 $data_file --result-file=$assert_file 2>&1
--echo Case: Stop position at EOF, WARNING must not appear
--echo # MYSQL_BINLOG --short-form --start-position=4 --stop-position=98 mysql-test/std_data/master-bin.000001 --result-file=warn_pos_test_file.out 2>&1
--exec $MYSQL_BINLOG --short-form --start-position=4 --stop-position=98 $data_file --result-file=$assert_file 2>&1
--echo Case: Stop position after EOF, WARNING must appear
--echo # MYSQL_BINLOG --short-form --start-position=4 --stop-position=99 mysql-test/std_data/master-bin.000001 --result-file=warn_pos_test_file.out 2>&1
--exec $MYSQL_BINLOG --short-form --start-position=4 --stop-position=99 $data_file --result-file=$assert_file 2>&1
--remove_file $assert_file
--echo # End of binlog_mysqlbinlog_warn_stop_position.test

View File

@@ -5,7 +5,11 @@ DROP TABLE t1;
ERROR 42S02: Unknown table 'test.t1'
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
GRA_.log
connection node_2;
SELECT * FROM t1;
f1
1
connection node_1;
GRA_.log
DROP TABLE t1;
CALL mtr.add_suppression("Ignoring error 'Unknown table 'test\\.t1'' on query");

View File

@@ -13,6 +13,11 @@ DROP TABLE t1;
CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
--connection node_2
SELECT * FROM t1;
--connection node_1
# Expect only one GRA_*.log file
# TODO replace_regex is somehow broken, it will filter out
# result totally if replacement string is already in result
@@ -20,7 +25,6 @@ INSERT INTO t1 VALUES (1);
# to get GRA_.log two times, this works for some reason
#
--replace_regex /GRA_.+\.log/GRA_.log/
--list_files $MYSQLTEST_VARDIR/mysqld.2/data GRA_*.log
--replace_regex /GRA_.+\.log/GRA_.log/
--list_files $MYSQLTEST_VARDIR/mysqld.2/data GRA_*.log

View File

@@ -0,0 +1,11 @@
!include ../galera_2nodes.cnf
[mysqld.1]
wsrep-debug=1
auto_increment_offset=1
auto_increment_increment=2
[mysqld.2]
wsrep-debug=1
auto_increment_offset=2
auto_increment_increment=2

View File

@@ -1,4 +1,5 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
CREATE TABLE parent(parent_id int not null AUTO_INCREMENT PRIMARY KEY,
parent_name varchar(80)) ENGINE=InnoDB;

View File

@@ -1,20 +1,17 @@
connection node_2;
connection node_1;
connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
connection node_1;
connection node_2;
connection node_3;
connection node_2;
SET wsrep_on=OFF;
SET SESSION wsrep_on=OFF;
DROP SCHEMA test;
connection node_3;
SET wsrep_on=OFF;
SET SESSION wsrep_on=OFF;
CREATE TABLE test.t1 (f1 INTEGER NOT NULL PRIMARY KEY) engine=innodb;
connection node_1;
CREATE TABLE test.t1 (f1 INTEGER NOT NULL PRIMARY KEY) engine=innodb;
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE
1
INSERT INTO test.t1 values (1);
SHOW STATUS LIKE 'wsrep_cluster_status';
Variable_name Value
wsrep_cluster_status Primary

View File

@@ -45,6 +45,7 @@ CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this
CALL mtr.add_suppression("Aborting");
CALL mtr.add_suppression("Plugin 'wsrep' init function returned error\\.");
CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed\\.");
CALL mtr.add_suppression("Plugin 'wsrep' registration as a FUNCTION failed\\.");
CALL mtr.add_suppression("Failed to initialize plugins\\.");
CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg\\(\\)");
connection node_3;
@@ -58,6 +59,7 @@ CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this
CALL mtr.add_suppression("Aborting");
CALL mtr.add_suppression("Plugin 'wsrep' init function returned error\\.");
CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed\\.");
CALL mtr.add_suppression("Plugin 'wsrep' registration as a FUNCTION failed\\.");
CALL mtr.add_suppression("Failed to initialize plugins\\.");
CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg\\(\\)");
SHOW CREATE TABLE t1;

View File

@@ -2,7 +2,9 @@
--source include/have_innodb.inc
--source include/force_restart.inc
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
--let $galera_connection_name = node_3
--let $galera_server_number = 3
--source include/galera_connect.inc
# Save original auto_increment_offset values.
--let $node_1=node_1
@@ -14,11 +16,11 @@
# 1. Create different inconsistencies on nodes 2 and 3
#
--connection node_2
SET wsrep_on=OFF;
SET SESSION wsrep_on=OFF;
DROP SCHEMA test;
--connection node_3
SET wsrep_on=OFF;
SET SESSION wsrep_on=OFF;
CREATE TABLE test.t1 (f1 INTEGER NOT NULL PRIMARY KEY) engine=innodb;
#
# 2. The following should generate different errors on nodes 2 and 3 and
@@ -27,10 +29,10 @@ CREATE TABLE test.t1 (f1 INTEGER NOT NULL PRIMARY KEY) engine=innodb;
#
--connection node_1
CREATE TABLE test.t1 (f1 INTEGER NOT NULL PRIMARY KEY) engine=innodb;
INSERT INTO test.t1 values (1);
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
--source include/wait_condition.inc
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'
--source include/wait_condition.inc
SHOW STATUS LIKE 'wsrep_cluster_status';

View File

@@ -193,6 +193,7 @@ CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this
CALL mtr.add_suppression("Aborting");
CALL mtr.add_suppression("Plugin 'wsrep' init function returned error\\.");
CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed\\.");
CALL mtr.add_suppression("Plugin 'wsrep' registration as a FUNCTION failed\\.");
CALL mtr.add_suppression("Failed to initialize plugins\\.");
CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg\\(\\)");
@@ -207,6 +208,7 @@ CALL mtr.add_suppression("It may not be safe to bootstrap the cluster from this
CALL mtr.add_suppression("Aborting");
CALL mtr.add_suppression("Plugin 'wsrep' init function returned error\\.");
CALL mtr.add_suppression("Plugin 'wsrep' registration as a STORAGE ENGINE failed\\.");
CALL mtr.add_suppression("Plugin 'wsrep' registration as a FUNCTION failed\\.");
CALL mtr.add_suppression("Failed to initialize plugins\\.");
CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg\\(\\)");