Skip to content

Commit be5fce1

Browse files
author
Jan Lindström
committed
MDEV-24596 : Assertion `state_ == s_exec || state_ == s_quitting' failed in wsrep::client_state::disable_streaming
There were multiple problems here * wsrep_trx_fragment_size should not be set when wsrep is disabled or provider is not loaded * wsrep_trx_fragment_unit should not be set when wsrep is disabled or provider is not loaded * wsrep_debug has no effect if wsrep is disabled or provider is not loaded * wsrep_start_position should not be set when wsrep is disabled or provider is not loaded any other value than default * wsrep_start_position should be changed only when we are joiner or initialized * wsrep_start_position should be allowed to set only a value that exits, thus we need to add error handling to wsrep_sst_complete
1 parent 9377e9b commit be5fce1

13 files changed

+304
-36
lines changed

mysql-test/suite/galera/disabled.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ galera_binlog_stmt_autoinc : MDEV-19959 Galera test failure on galera_binlog_stm
2323
galera_encrypt_tmp_files : Get error failed to enable encryption of temporary files
2424
galera_ftwrl : MDEV-21525 galera.galera_ftwrl
2525
galera_gcache_recover_manytrx : MDEV-18834 Galera test failure
26+
galera_ist_mysqldump : MDEV-24463 galera.galera_sst_mysqldump_with_key MTR failed: 'INSERT failed: 1213: Deadlock found when trying to get lock
2627
galera_kill_largechanges : MDEV-18179 Galera test failure on galera.galera_kill_largechanges
2728
galera_kill_nochanges : MDEV-18280 Galera test failure on galera_split_brain and galera_kill_nochanges
2829
galera_many_tables_nopk : MDEV-18182 Galera test failure on galera.galera_many_tables_nopk
@@ -33,6 +34,8 @@ galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim
3334
galera_split_brain : MDEV-18280 Galera test failure on galera_split_brain and galera_kill_nochanges
3435
galera_ssl_upgrade : MDEV-19950 Galera test failure on galera_ssl_upgrade
3536
galera_sst_mariabackup_encrypt_with_key : MDEV-21484 galera_sst_mariabackup_encrypt_with_key
37+
galera_sst_mysqldump : MDEV-24463 galera.galera_sst_mysqldump_with_key MTR failed: 'INSERT failed: 1213: Deadlock found when trying to get lock
38+
galera_sst_mysqldump_with_key : MDEV-24463 galera.galera_sst_mysqldump_with_key MTR failed: 'INSERT failed: 1213: Deadlock found when trying to get lock
3639
galera_toi_ddl_nonconflicting : MDEV-21518 galera.galera_toi_ddl_nonconflicting
3740
galera_toi_truncate : MDEV-22996 Hang on galera_toi_truncate test case
3841
galera_var_node_address : MDEV-20485 Galera test failure

mysql-test/suite/sys_vars/r/wsrep_start_position_basic.result renamed to mysql-test/suite/galera/r/galera_var_wsrep_start_position.result

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
connection node_2;
2+
connection node_1;
13
#
24
# wsrep_start_position
35
#
6+
CALL mtr.add_suppression("WSREP: SST failed for position .*");
47
SET @wsrep_start_position_global_saved = @@global.wsrep_start_position;
58
# default
69
SELECT @@global.wsrep_start_position;
@@ -15,20 +18,22 @@ SELECT @@global.wsrep_start_position;
1518
00000000-0000-0000-0000-000000000000:-1
1619

1720
# valid values
18-
SET @@global.wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
21+
SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:-1';
1922
SELECT @@global.wsrep_start_position;
2023
@@global.wsrep_start_position
21-
12345678-1234-1234-1234-123456789012:100
24+
00000000-0000-0000-0000-000000000000:-1
25+
2226
SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:0';
27+
ERROR 42000: Variable 'wsrep_start_position' can't be set to the value of '00000000-0000-0000-0000-000000000000:0'
2328
SELECT @@global.wsrep_start_position;
2429
@@global.wsrep_start_position
25-
00000000-0000-0000-0000-000000000000:0
26-
SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:-1';
30+
00000000-0000-0000-0000-000000000000:-1
31+
# invalid values
32+
SET @@global.wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
33+
ERROR 42000: Variable 'wsrep_start_position' can't be set to the value of '12345678-1234-1234-1234-123456789012:100'
2734
SELECT @@global.wsrep_start_position;
2835
@@global.wsrep_start_position
2936
00000000-0000-0000-0000-000000000000:-1
30-
31-
# invalid values
3237
SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:-2';
3338
ERROR 42000: Variable 'wsrep_start_position' can't be set to the value of '00000000-0000-0000-0000-000000000000:-2'
3439
SELECT @@global.wsrep_start_position;

mysql-test/suite/sys_vars/t/wsrep_start_position_basic.test renamed to mysql-test/suite/galera/t/galera_var_wsrep_start_position.test

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
--source include/have_wsrep.inc
1+
--source include/galera_cluster.inc
22

33
--echo #
44
--echo # wsrep_start_position
55
--echo #
66

7-
SET @wsrep_start_position_global_saved = @@global.wsrep_start_position;
7+
CALL mtr.add_suppression("WSREP: SST failed for position .*");
88

9+
SET @wsrep_start_position_global_saved = @@global.wsrep_start_position;
910
--echo # default
1011
SELECT @@global.wsrep_start_position;
1112

@@ -15,19 +16,20 @@ SELECT @@global.wsrep_start_position;
1516
SELECT @@session.wsrep_start_position;
1617
SELECT @@global.wsrep_start_position;
1718

18-
1919
--echo
2020
--echo # valid values
21-
SET @@global.wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
22-
SELECT @@global.wsrep_start_position;
23-
SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:0';
24-
SELECT @@global.wsrep_start_position;
2521
SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:-1';
2622
SELECT @@global.wsrep_start_position;
2723

2824
--echo
25+
--error ER_WRONG_VALUE_FOR_VAR
26+
SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:0';
27+
SELECT @@global.wsrep_start_position;
2928
--echo # invalid values
3029
--error ER_WRONG_VALUE_FOR_VAR
30+
SET @@global.wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
31+
SELECT @@global.wsrep_start_position;
32+
--error ER_WRONG_VALUE_FOR_VAR
3133
SET @@global.wsrep_start_position='00000000-0000-0000-0000-000000000000:-2';
3234
SELECT @@global.wsrep_start_position;
3335
--error ER_WRONG_VALUE_FOR_VAR

mysql-test/suite/sys_vars/r/wsrep_debug_basic.result

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,23 @@ SELECT @@global.wsrep_debug;
1616
@@global.wsrep_debug
1717
NONE
1818
SET @@global.wsrep_debug=1;
19+
Warnings:
20+
Warning 1231 Setting 'wsrep_debug' has no effect because wsrep is switched off
1921
SELECT @@global.wsrep_debug;
2022
@@global.wsrep_debug
21-
SERVER
23+
NONE
2224

2325
# valid values
2426
SET @@global.wsrep_debug=NONE;
2527
SELECT @@global.wsrep_debug;
2628
@@global.wsrep_debug
2729
NONE
2830
SET @@global.wsrep_debug=SERVER;
31+
Warnings:
32+
Warning 1231 Setting 'wsrep_debug' has no effect because wsrep is switched off
2933
SELECT @@global.wsrep_debug;
3034
@@global.wsrep_debug
31-
SERVER
35+
NONE
3236
SET @@global.wsrep_debug=default;
3337
SELECT @@global.wsrep_debug;
3438
@@global.wsrep_debug
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
SELECT @@wsrep_on;
2+
@@wsrep_on
3+
1
4+
SET @wsrep_slave_threads_global_saved = @@global.wsrep_slave_threads;
5+
SET @wsrep_debug_saved = @@global.wsrep_debug;
6+
SET @wsrep_provider_options_saved= @@global.wsrep_provider_options;
7+
SET @wsrep_cluster_address_saved= @@global.wsrep_cluster_address;
8+
SET GLOBAL wsrep_provider=none;
9+
SET SESSION wsrep_trx_fragment_size=DEFAULT;
10+
ERROR HY000: Incorrect arguments to SET
11+
SELECT @@session.wsrep_trx_fragment_size;
12+
@@session.wsrep_trx_fragment_size
13+
0
14+
SET GLOBAL wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
15+
ERROR 42000: Variable 'wsrep_start_position' can't be set to the value of '12345678-1234-1234-1234-123456789012:100'
16+
SHOW WARNINGS;
17+
Level Code Message
18+
Warning 1231 Cannot set 'wsrep_start_position' because wsrep is switched off or provider is not loaded
19+
Error 1231 Variable 'wsrep_start_position' can't be set to the value of '12345678-1234-1234-1234-123456789012:100'
20+
SELECT @@global.wsrep_start_position;
21+
@@global.wsrep_start_position
22+
00000000-0000-0000-0000-000000000000:-1
23+
SET GLOBAL wsrep_debug=1;
24+
Warnings:
25+
Warning 1231 Setting 'wsrep_debug' has no effect because wsrep is switched off
26+
SELECT @@global.wsrep_debug;
27+
@@global.wsrep_debug
28+
NONE
29+
SET GLOBAL wsrep_slave_threads=5;
30+
SELECT @@global.wsrep_slave_threads;
31+
@@global.wsrep_slave_threads
32+
5
33+
SET GLOBAL wsrep_desync=1;
34+
ERROR HY000: WSREP (galera) not started
35+
SELECT @@global.wsrep_desync;
36+
@@global.wsrep_desync
37+
0
38+
SET SESSION wsrep_trx_fragment_unit='rows';
39+
ERROR HY000: Incorrect arguments to SET
40+
SELECT @@session.wsrep_trx_fragment_unit;
41+
@@session.wsrep_trx_fragment_unit
42+
rows
43+
SET @@global.wsrep_slave_threads = @wsrep_slave_threads_global_saved;
44+
SET @@global.wsrep_debug = @wsrep_debug_saved;
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
SELECT @@wsrep_on;
2+
@@wsrep_on
3+
0
4+
SET @wsrep_slave_threads_global_saved = @@global.wsrep_slave_threads;
5+
SET @wsrep_debug_saved = @@global.wsrep_debug;
6+
SET SESSION wsrep_trx_fragment_size=DEFAULT;
7+
ERROR HY000: Incorrect arguments to SET
8+
SELECT @@session.wsrep_trx_fragment_size;
9+
@@session.wsrep_trx_fragment_size
10+
0
11+
SET GLOBAL wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
12+
ERROR 42000: Variable 'wsrep_start_position' can't be set to the value of '12345678-1234-1234-1234-123456789012:100'
13+
SHOW WARNINGS;
14+
Level Code Message
15+
Warning 1231 Cannot set 'wsrep_start_position' because wsrep is switched off or provider is not loaded
16+
Error 1231 Variable 'wsrep_start_position' can't be set to the value of '12345678-1234-1234-1234-123456789012:100'
17+
SELECT @@global.wsrep_start_position;
18+
@@global.wsrep_start_position
19+
00000000-0000-0000-0000-000000000000:-1
20+
SET GLOBAL wsrep_debug=1;
21+
Warnings:
22+
Warning 1231 Setting 'wsrep_debug' has no effect because wsrep is switched off
23+
SELECT @@global.wsrep_debug;
24+
@@global.wsrep_debug
25+
NONE
26+
SET GLOBAL wsrep_slave_threads=5;
27+
SELECT @@global.wsrep_slave_threads;
28+
@@global.wsrep_slave_threads
29+
5
30+
SET GLOBAL wsrep_desync=1;
31+
ERROR HY000: WSREP (galera) not started
32+
SELECT @@global.wsrep_desync;
33+
@@global.wsrep_desync
34+
0
35+
SET SESSION wsrep_trx_fragment_unit='rows';
36+
ERROR HY000: Incorrect arguments to SET
37+
SELECT @@session.wsrep_trx_fragment_unit;
38+
@@session.wsrep_trx_fragment_unit
39+
rows
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Use default setting for mysqld processes
2+
!include include/default_mysqld.cnf
3+
4+
[mysqld.1]
5+
wsrep-on=ON
6+
binlog-format=ROW
7+
wsrep-provider=@ENV.WSREP_PROVIDER
8+
wsrep-cluster-address='gcomm://'
9+
#galera_port=@OPT.port
10+
#ist_port=@OPT.port
11+
#sst_port=@OPT.port
12+
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--source include/have_wsrep.inc
2+
--source include/have_innodb.inc
3+
4+
SELECT @@wsrep_on;
5+
6+
SET @wsrep_slave_threads_global_saved = @@global.wsrep_slave_threads;
7+
SET @wsrep_debug_saved = @@global.wsrep_debug;
8+
SET @wsrep_provider_options_saved= @@global.wsrep_provider_options;
9+
SET @wsrep_cluster_address_saved= @@global.wsrep_cluster_address;
10+
11+
SET GLOBAL wsrep_provider=none;
12+
13+
--error ER_WRONG_ARGUMENTS
14+
SET SESSION wsrep_trx_fragment_size=DEFAULT;
15+
SELECT @@session.wsrep_trx_fragment_size;
16+
--error ER_WRONG_VALUE_FOR_VAR
17+
SET GLOBAL wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
18+
SHOW WARNINGS;
19+
SELECT @@global.wsrep_start_position;
20+
SET GLOBAL wsrep_debug=1;
21+
SELECT @@global.wsrep_debug;
22+
SET GLOBAL wsrep_slave_threads=5;
23+
SELECT @@global.wsrep_slave_threads;
24+
--error ER_WRONG_ARGUMENTS
25+
SET GLOBAL wsrep_desync=1;
26+
SELECT @@global.wsrep_desync;
27+
--error ER_WRONG_ARGUMENTS
28+
SET SESSION wsrep_trx_fragment_unit='rows';
29+
SELECT @@session.wsrep_trx_fragment_unit;
30+
31+
--disable_query_log
32+
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
33+
SET GLOBAL wsrep_cluster_address= @wsrep_cluster_address_saved;
34+
SET GLOBAL wsrep_provider_options= @wsrep_provider_options_saved;
35+
--source include/galera_wait_ready.inc
36+
SET @@global.wsrep_slave_threads = @wsrep_slave_threads_global_saved;
37+
SET @@global.wsrep_debug = @wsrep_debug_saved;
38+
--enable_query_log
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Use default setting for mysqld processes
2+
!include include/default_mysqld.cnf
3+
4+
[mysqld]
5+
wsrep-on=OFF
6+
7+
[mysqld.1]
8+
wsrep-on=OFF
9+
#galera_port=@OPT.port
10+
#ist_port=@OPT.port
11+
#sst_port=@OPT.port
12+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
--source include/have_wsrep.inc
2+
--source include/have_innodb.inc
3+
4+
SELECT @@wsrep_on;
5+
6+
SET @wsrep_slave_threads_global_saved = @@global.wsrep_slave_threads;
7+
SET @wsrep_debug_saved = @@global.wsrep_debug;
8+
9+
--error ER_WRONG_ARGUMENTS
10+
SET SESSION wsrep_trx_fragment_size=DEFAULT;
11+
SELECT @@session.wsrep_trx_fragment_size;
12+
--error ER_WRONG_VALUE_FOR_VAR
13+
SET GLOBAL wsrep_start_position='12345678-1234-1234-1234-123456789012:100';
14+
SHOW WARNINGS;
15+
SELECT @@global.wsrep_start_position;
16+
SET GLOBAL wsrep_debug=1;
17+
SELECT @@global.wsrep_debug;
18+
SET GLOBAL wsrep_slave_threads=5;
19+
SELECT @@global.wsrep_slave_threads;
20+
--error ER_WRONG_ARGUMENTS
21+
SET GLOBAL wsrep_desync=1;
22+
SELECT @@global.wsrep_desync;
23+
--error ER_WRONG_ARGUMENTS
24+
SET SESSION wsrep_trx_fragment_unit='rows';
25+
SELECT @@session.wsrep_trx_fragment_unit;
26+
27+
--disable_query_log
28+
SET @@global.wsrep_slave_threads = @wsrep_slave_threads_global_saved;
29+
SET @@global.wsrep_debug = @wsrep_debug_saved;
30+
--enable_query_log

0 commit comments

Comments
 (0)