Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion include/m_ctype.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
enum loglevel {
ERROR_LEVEL= 0,
WARNING_LEVEL= 1,
INFORMATION_LEVEL= 2
INFORMATION_LEVEL= 2,
DEBUG_LEVEL= 3
};

#ifdef __cplusplus
Expand Down
19 changes: 15 additions & 4 deletions include/wsrep.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright 2014 Codership Oy <http://www.codership.com> & SkySQL Ab
/* Copyright 2014,2025 Codership Oy <http://www.codership.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand All @@ -24,10 +24,21 @@
#define DBUG_ASSERT_IF_WSREP(A) DBUG_ASSERT(A)

extern ulong wsrep_debug; // wsrep_mysqld.cc
/** wsrep_debug_mode is controlled by wsrep_debug and
wsrep_buffered_error_log_buffer_size variables.
If any of these are set we output also debug messages. */
extern ulong wsrep_debug_mode; // wsrep_var.cc

#ifndef WSREP_DEBUG_MODE_OFF
#define WSREP_DEBUG_MODE_OFF 0
#define WSREP_DEBUG_MODE_DEBUG 2
#define WSREP_DEBUG_MODE_BUFFERED 4
#endif

extern void WSREP_LOG(void (*fun)(const char* fmt, ...), const char* fmt, ...);

#define WSREP_DEBUG(...) \
if (wsrep_debug) WSREP_LOG(sql_print_information, ##__VA_ARGS__)
#define WSREP_DEBUG(...) if ((wsrep_debug_mode & WSREP_DEBUG_MODE_DEBUG )) \
WSREP_LOG(sql_print_debug, ##__VA_ARGS__)
#define WSREP_INFO(...) WSREP_LOG(sql_print_information, ##__VA_ARGS__)
#define WSREP_WARN(...) WSREP_LOG(sql_print_warning, ##__VA_ARGS__)
#define WSREP_ERROR(...) WSREP_LOG(sql_print_error, ##__VA_ARGS__)
Expand All @@ -47,7 +58,7 @@ extern void WSREP_LOG(void (*fun)(const char* fmt, ...), const char* fmt, ...);
);

#define WSREP_LOG_CONFLICT(bf_thd, victim_thd, bf_abort) \
if (wsrep_debug || wsrep_log_conflicts) \
if (wsrep_debug_mode || wsrep_log_conflicts) \
{ \
WSREP_INFO("cluster conflict due to %s for threads:", \
(bf_abort) ? "high priority abort" : "certification failure" \
Expand Down
2 changes: 1 addition & 1 deletion mysql-test/include/galera_variables_ok.inc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ if (!$_galera_variables_delta) {
--let $galera_variables_delta=0
}

--let $galera_variables_expected=`SELECT 51 + $galera_variables_delta`
--let $galera_variables_expected=`SELECT 54 + $galera_variables_delta`

--let $galera_variables_count=`SELECT COUNT(*) FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'`

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
connection node_2;
connection node_1;
connection node_2;
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
102400
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
4194304
CREATE TABLE t1(a int not null primary key) engine=innodb;
INSERT INTO t1 SELECT * FROM seq_1_to_1000;
# Change buffer size larger
SET GLOBAL wsrep_buffered_error_log_buffer_size = 202400;
SHOW WARNINGS;
Level Code Message
Testing that old log contains something logged
FOUND 1 /WSREP: Loading provider/ in galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
202400
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
4194304
SELECT COUNT(*) AS EXPECT_1000 FROM t1;
EXPECT_1000
1000
DROP TABLE t1;
# Change buffer size smaller
SET GLOBAL wsrep_buffered_error_log_buffer_size = 102400;
SHOW WARNINGS;
Level Code Message
Testing that log contains something logged
FOUND 4 /DROP TABLE/ in galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
102400
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
4194304
# Try to change buffer size to unsupported size i.e too large
SET GLOBAL wsrep_buffered_error_log_buffer_size = 4194400;
ERROR 42000: Variable 'wsrep_buffered_error_log_buffer_size' can't be set to the value of '4194400'
SHOW WARNINGS;
Level Code Message
Warning 1231 Parameter 'wsrep_buffered_error_log_size' should be at range 102400-419430 because wsrep_buffered_error_log_file_size=4194304
Error 1231 Variable 'wsrep_buffered_error_log_buffer_size' can't be set to the value of '4194400'
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
102400
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
4194304
# Try to change buffer size to unsupported size i.e too small
SET GLOBAL wsrep_buffered_error_log_buffer_size = 8196;
ERROR 42000: Variable 'wsrep_buffered_error_log_buffer_size' can't be set to the value of '8196'
SHOW WARNINGS;
Level Code Message
Warning 1231 Parameter 'wsrep_buffered_error_log_size' should be at range 102400-419430 because wsrep_buffered_error_log_file_size=4194304
Error 1231 Variable 'wsrep_buffered_error_log_buffer_size' can't be set to the value of '8196'
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
102400
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
4194304
# Reset buffer size to original size
SET GLOBAL wsrep_buffered_error_log_buffer_size = 102400;
SHOW WARNINGS;
Level Code Message
Warning 1231 Parameter 'wsrep_buffered_error_log_size' should be at range 102400-419430 because wsrep_buffered_error_log_file_size=4194304
Error 1231 Variable 'wsrep_buffered_error_log_buffer_size' can't be set to the value of '8196'
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
connection node_2;
connection node_1;
connection node_2;
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
10240
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
204800
CREATE TABLE t1(a int not null primary key auto_increment, count int) engine=innodb;
# Change file size larger
SET GLOBAL wsrep_buffered_error_log_file_size=262144;
# List error log files - should have 3 files
galera_buffered_error_log.err
galera_buffered_error_log.err.1
galera_buffered_error_log.err.2
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
10240
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
262144
SELECT COUNT(*) AS EXPECT_2000 FROM t1;
EXPECT_2000
2000
DROP TABLE t1;
# Change file size smaller
SET GLOBAL wsrep_buffered_error_log_file_size=131072;
# List error log files - should be 3 files
galera_buffered_error_log.err
galera_buffered_error_log.err.1
galera_buffered_error_log.err.2
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
10240
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
131072
# Try to change buffer size to unsupported size i.e too small
SET GLOBAL wsrep_buffered_error_log_file_size=1024;
ERROR 42000: Variable 'wsrep_buffered_error_log_file_size' can't be set to the value of '1024'
# Reset file size to original size
SET GLOBAL wsrep_buffered_error_log_file_size=204800;
# List error log files - should be 3 files
galera_buffered_error_log.err
galera_buffered_error_log.err.1
galera_buffered_error_log.err.2
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
connection node_2;
connection node_1;
connection node_2;
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
10240
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
102400
SELECT @@global.wsrep_buffered_error_log_rotations;
@@global.wsrep_buffered_error_log_rotations
5
CREATE TABLE t1(a int not null primary key auto_increment, count int) engine=innodb;
# List error log files - max file number .5
galera_buffered_error_log.err
galera_buffered_error_log.err.1
galera_buffered_error_log.err.2
galera_buffered_error_log.err.3
galera_buffered_error_log.err.4
galera_buffered_error_log.err.5
# Change rotations larger
SET GLOBAL wsrep_buffered_error_log_rotations=6;
# List error log files - max file number .6
galera_buffered_error_log.err
galera_buffered_error_log.err.1
galera_buffered_error_log.err.2
galera_buffered_error_log.err.3
galera_buffered_error_log.err.4
galera_buffered_error_log.err.5
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
10240
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
102400
SELECT @@global.wsrep_buffered_error_log_rotations;
@@global.wsrep_buffered_error_log_rotations
6
# Change rotations smaller
SET GLOBAL wsrep_buffered_error_log_rotations=2;
SELECT COUNT(*) AS EXPECT_2000 FROM t1;
EXPECT_2000
3000
DROP TABLE t1;
# List error log files - max file number .2
SELECT @@global.wsrep_buffered_error_log_filename;
@@global.wsrep_buffered_error_log_filename
galera_buffered_error_log.err
SELECT @@global.wsrep_buffered_error_log_buffer_size;
@@global.wsrep_buffered_error_log_buffer_size
10240
SELECT @@global.wsrep_buffered_error_log_file_size;
@@global.wsrep_buffered_error_log_file_size
102400
SELECT @@global.wsrep_buffered_error_log_rotations;
@@global.wsrep_buffered_error_log_rotations
2
# Reset
SET @@global.wsrep_buffered_error_log_rotations=5;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
!include ../galera_2nodes.cnf

[mysqld]
wsrep-debug=1

[mysqld.2]
wsrep_buffered_error_log_buffer_size=100K
wsrep_buffered_error_log_file_size=4M
wsrep_buffered_error_log_filename="galera_buffered_error_log.err"
wsrep_buffered_error_log_rotations=10
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
--source include/galera_cluster.inc
--source include/have_sequence.inc

--connection node_2
--replace_regex /.*galera_buffered_error_log.err.*/galera_buffered_error_log.err/
SELECT @@global.wsrep_buffered_error_log_filename;
SELECT @@global.wsrep_buffered_error_log_buffer_size;
SELECT @@global.wsrep_buffered_error_log_file_size;

CREATE TABLE t1(a int not null primary key) engine=innodb;
INSERT INTO t1 SELECT * FROM seq_1_to_1000;

--echo # Change buffer size larger
SET GLOBAL wsrep_buffered_error_log_buffer_size = 202400;
SHOW WARNINGS;

--echo Testing that old log contains something logged
--let SEARCH_FILE= $MYSQLTEST_VARDIR/mysqld.2/data/galera_buffered_error_log.err
--let ABORT_ON = NOT_FOUND
--let SEARCH_PATTERN=WSREP: Loading provider
--source include/search_pattern_in_file.inc

--replace_regex /.*galera_buffered_error_log.err.*/galera_buffered_error_log.err/
SELECT @@global.wsrep_buffered_error_log_filename;
SELECT @@global.wsrep_buffered_error_log_buffer_size;
SELECT @@global.wsrep_buffered_error_log_file_size;

SELECT COUNT(*) AS EXPECT_1000 FROM t1;
DROP TABLE t1;

--echo # Change buffer size smaller
SET GLOBAL wsrep_buffered_error_log_buffer_size = 102400;
SHOW WARNINGS;

--echo Testing that log contains something logged
--let SEARCH_FILE= $MYSQLTEST_VARDIR/mysqld.2/data/galera_buffered_error_log.err
--let ABORT_ON = NOT_FOUND
--let SEARCH_PATTERN=DROP TABLE
--source include/search_pattern_in_file.inc

--replace_regex /.*galera_buffered_error_log.err.*/galera_buffered_error_log.err/
SELECT @@global.wsrep_buffered_error_log_filename;
SELECT @@global.wsrep_buffered_error_log_buffer_size;
SELECT @@global.wsrep_buffered_error_log_file_size;

--echo # Try to change buffer size to unsupported size i.e too large
--error ER_WRONG_VALUE_FOR_VAR
SET GLOBAL wsrep_buffered_error_log_buffer_size = 4194400;
SHOW WARNINGS;

--replace_regex /.*galera_buffered_error_log.err.*/galera_buffered_error_log.err/
SELECT @@global.wsrep_buffered_error_log_filename;
SELECT @@global.wsrep_buffered_error_log_buffer_size;
SELECT @@global.wsrep_buffered_error_log_file_size;

--echo # Try to change buffer size to unsupported size i.e too small
--error ER_WRONG_VALUE_FOR_VAR
SET GLOBAL wsrep_buffered_error_log_buffer_size = 8196;
SHOW WARNINGS;

--replace_regex /.*galera_buffered_error_log.err.*/galera_buffered_error_log.err/
SELECT @@global.wsrep_buffered_error_log_filename;
SELECT @@global.wsrep_buffered_error_log_buffer_size;
SELECT @@global.wsrep_buffered_error_log_file_size;

--echo # Reset buffer size to original size
SET GLOBAL wsrep_buffered_error_log_buffer_size = 102400;
SHOW WARNINGS;

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
!include ../galera_2nodes.cnf

[mysqld]
wsrep-debug=1

[mysqld.2]
wsrep_buffered_error_log_buffer_size=10K
wsrep_buffered_error_log_file_size=200K
wsrep_buffered_error_log_filename="galera_buffered_error_log.err"
wsrep_buffered_error_log_rotations=2
loose-galera-log_file-size


Loading