Commit 167eac7d authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

Merge branch '10.6' into 10.7

parents 2b700780 415d2691
...@@ -1392,6 +1392,11 @@ uint xb_client_options_count = array_elements(xb_client_options); ...@@ -1392,6 +1392,11 @@ uint xb_client_options_count = array_elements(xb_client_options);
static const char *dbug_option; static const char *dbug_option;
#endif #endif
#ifdef HAVE_URING
extern const char *io_uring_may_be_unsafe;
bool innodb_use_native_aio_default();
#endif
struct my_option xb_server_options[] = struct my_option xb_server_options[] =
{ {
{"datadir", 'h', "Path to the database root.", (G_PTR*) &mysql_data_home, {"datadir", 'h', "Path to the database root.", (G_PTR*) &mysql_data_home,
...@@ -1508,7 +1513,12 @@ struct my_option xb_server_options[] = ...@@ -1508,7 +1513,12 @@ struct my_option xb_server_options[] =
"Use native AIO if supported on this platform.", "Use native AIO if supported on this platform.",
(G_PTR*) &srv_use_native_aio, (G_PTR*) &srv_use_native_aio,
(G_PTR*) &srv_use_native_aio, 0, GET_BOOL, NO_ARG, (G_PTR*) &srv_use_native_aio, 0, GET_BOOL, NO_ARG,
TRUE, 0, 0, 0, 0, 0}, #ifdef HAVE_URING
innodb_use_native_aio_default(),
#else
TRUE,
#endif
0, 0, 0, 0, 0},
{"innodb_page_size", OPT_INNODB_PAGE_SIZE, {"innodb_page_size", OPT_INNODB_PAGE_SIZE,
"The universal page size of the database.", "The universal page size of the database.",
(G_PTR*) &innobase_page_size, (G_PTR*) &innobase_page_size, 0, (G_PTR*) &innobase_page_size, (G_PTR*) &innobase_page_size, 0,
...@@ -2071,8 +2081,12 @@ static bool innodb_init_param() ...@@ -2071,8 +2081,12 @@ static bool innodb_init_param()
msg("InnoDB: Using Linux native AIO"); msg("InnoDB: Using Linux native AIO");
} }
#elif defined(HAVE_URING) #elif defined(HAVE_URING)
if (!srv_use_native_aio) {
if (srv_use_native_aio) { } else if (io_uring_may_be_unsafe) {
msg("InnoDB: Using liburing on this kernel %s may cause hangs;"
" see https://jira.mariadb.org/browse/MDEV-26674",
io_uring_may_be_unsafe);
} else {
msg("InnoDB: Using liburing"); msg("InnoDB: Using liburing");
} }
#else #else
......
# MDEV-20699 do not cache SP in SHOW CREATE
# Warmup round, this might allocate some memory for session variable
# and the output
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
CREATE PROCEDURE sp0() SELECT 1;
SHOW CREATE PROCEDURE sp0;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp0 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp0`()
SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
DROP PROCEDURE sp0;
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
CREATE PROCEDURE sp1() SELECT 1;
SHOW CREATE PROCEDURE sp1;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
VARIABLE_VALUE-@local_mem_used
0
DROP PROCEDURE sp1;
#
# End of 10.3 tests
#
--source include/not_valgrind.inc
--echo # MDEV-20699 do not cache SP in SHOW CREATE
--echo # Warmup round, this might allocate some memory for session variable
--echo # and the output
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
CREATE PROCEDURE sp0() SELECT 1;
SHOW CREATE PROCEDURE sp0;
DROP PROCEDURE sp0;
#Check that CREATE/SHOW does not use memory in caches.
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
CREATE PROCEDURE sp1() SELECT 1;
SHOW CREATE PROCEDURE sp1;
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
# FIXME: MDEV-26754 main.sp test fails for embedded server
#SELECT VARIABLE_VALUE-@global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
DROP PROCEDURE sp1;
--echo #
--echo # End of 10.3 tests
--echo #
...@@ -8869,25 +8869,6 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp ...@@ -8869,25 +8869,6 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
BEGIN BEGIN
RETURN ''; RETURN '';
END' at line 2 END' at line 2
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
CREATE PROCEDURE sp0() SELECT 1;
SHOW CREATE PROCEDURE sp0;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp0 STRICT_ALL_TABLES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp0`()
SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
DROP PROCEDURE sp0;
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
CREATE PROCEDURE sp1() SELECT 1;
SHOW CREATE PROCEDURE sp1;
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
sp1 STRICT_ALL_TABLES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
VARIABLE_VALUE-@local_mem_used
0
DROP PROCEDURE sp1;
# End of 10.3 tests # End of 10.3 tests
# #
# Start of 10.4 tests # Start of 10.4 tests
......
...@@ -10418,24 +10418,6 @@ END; ...@@ -10418,24 +10418,6 @@ END;
$$ $$
DELIMITER ;$$ DELIMITER ;$$
# MDEV-20699 do not cache SP in SHOW CREATE
# Warmup round, this might allocate some memory for session variable
# and the output
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
CREATE PROCEDURE sp0() SELECT 1;
SHOW CREATE PROCEDURE sp0;
DROP PROCEDURE sp0;
#Check that CREATE/SHOW does not use memory in caches.
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
CREATE PROCEDURE sp1() SELECT 1;
SHOW CREATE PROCEDURE sp1;
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
# FIXME: MDEV-26754 main.sp test fails for embedded server
#SELECT VARIABLE_VALUE-@global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
DROP PROCEDURE sp1;
--echo # End of 10.3 tests --echo # End of 10.3 tests
......
connection node_2; connection node_2;
connection node_1; connection node_1;
connection node_1; connection node_1;
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); call mtr.add_suppression("WSREP: write_handler().*");
connection node_2; connection node_2;
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); call mtr.add_suppression("WSREP: write_handler():.*");
connection node_1; connection node_1;
connection node_2; connection node_2;
connection node_1; connection node_1;
...@@ -27,5 +27,7 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N ...@@ -27,5 +27,7 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N
VARIABLE_VALUE = 2 VARIABLE_VALUE = 2
1 1
connection node_2; connection node_2;
disconnect node_2; connection node_1;
disconnect node_1; call mtr.add_suppression("WSREP: write_handler().*");
connection node_2;
call mtr.add_suppression("WSREP: write_handler():.*");
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
--source include/have_ssl_communication.inc --source include/have_ssl_communication.inc
--connection node_1 --connection node_1
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); call mtr.add_suppression("WSREP: write_handler().*");
--connection node_2 --connection node_2
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); call mtr.add_suppression("WSREP: write_handler():.*");
# Save original auto_increment_offset values. # Save original auto_increment_offset values.
--let $node_1=node_1 --let $node_1=node_1
...@@ -76,4 +76,8 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N ...@@ -76,4 +76,8 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N
# Restore original auto_increment_offset values. # Restore original auto_increment_offset values.
--source include/auto_increment_offset_restore.inc --source include/auto_increment_offset_restore.inc
--source include/galera_end.inc --connection node_1
call mtr.add_suppression("WSREP: write_handler().*");
--connection node_2
call mtr.add_suppression("WSREP: write_handler():.*");
...@@ -158,7 +158,7 @@ void close_thread_tables(THD* thd); ...@@ -158,7 +158,7 @@ void close_thread_tables(THD* thd);
#ifdef HAVE_URING #ifdef HAVE_URING
/** The Linux kernel version if io_uring() is considered unsafe */ /** The Linux kernel version if io_uring() is considered unsafe */
static const char *io_uring_may_be_unsafe; const char *io_uring_may_be_unsafe;
#endif #endif
#define INSIDE_HA_INNOBASE_CC #define INSIDE_HA_INNOBASE_CC
...@@ -19393,9 +19393,10 @@ static MYSQL_SYSVAR_STR(version, innodb_version_str, ...@@ -19393,9 +19393,10 @@ static MYSQL_SYSVAR_STR(version, innodb_version_str,
#ifdef HAVE_URING #ifdef HAVE_URING
# include <sys/utsname.h> # include <sys/utsname.h>
static utsname uname_for_io_uring; static utsname uname_for_io_uring;
#else
static
#endif #endif
bool innodb_use_native_aio_default()
static bool innodb_use_native_aio_default()
{ {
#ifdef HAVE_URING #ifdef HAVE_URING
utsname &u= uname_for_io_uring; utsname &u= uname_for_io_uring;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment