mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Merge branch '10.6' into 10.7
This commit is contained in:
commit
167eac7d43
8 changed files with 85 additions and 50 deletions
|
@ -1392,6 +1392,11 @@ uint xb_client_options_count = array_elements(xb_client_options);
|
|||
static const char *dbug_option;
|
||||
#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[] =
|
||||
{
|
||||
{"datadir", 'h', "Path to the database root.", (G_PTR*) &mysql_data_home,
|
||||
|
@ -1508,7 +1513,12 @@ struct my_option xb_server_options[] =
|
|||
"Use native AIO if supported on this platform.",
|
||||
(G_PTR*) &srv_use_native_aio,
|
||||
(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,
|
||||
"The universal page size of the database.",
|
||||
(G_PTR*) &innobase_page_size, (G_PTR*) &innobase_page_size, 0,
|
||||
|
@ -2071,8 +2081,12 @@ static bool innodb_init_param()
|
|||
msg("InnoDB: Using Linux native AIO");
|
||||
}
|
||||
#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");
|
||||
}
|
||||
#else
|
||||
|
|
25
mysql-test/main/sp-no-valgrind.result
Normal file
25
mysql-test/main/sp-no-valgrind.result
Normal file
|
@ -0,0 +1,25 @@
|
|||
# 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
|
||||
#
|
26
mysql-test/main/sp-no-valgrind.test
Normal file
26
mysql-test/main/sp-no-valgrind.test
Normal file
|
@ -0,0 +1,26 @@
|
|||
|
||||
--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
|
|||
BEGIN
|
||||
RETURN '';
|
||||
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
|
||||
#
|
||||
# Start of 10.4 tests
|
||||
|
|
|
@ -10418,24 +10418,6 @@ END;
|
|||
$$
|
||||
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
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
connection node_2;
|
||||
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;
|
||||
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*");
|
||||
call mtr.add_suppression("WSREP: write_handler():.*");
|
||||
connection node_1;
|
||||
connection node_2;
|
||||
connection node_1;
|
||||
|
@ -27,5 +27,7 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N
|
|||
VARIABLE_VALUE = 2
|
||||
1
|
||||
connection node_2;
|
||||
disconnect node_2;
|
||||
disconnect node_1;
|
||||
connection node_1;
|
||||
call mtr.add_suppression("WSREP: write_handler().*");
|
||||
connection node_2;
|
||||
call mtr.add_suppression("WSREP: write_handler():.*");
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
--source include/have_ssl_communication.inc
|
||||
|
||||
--connection node_1
|
||||
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*");
|
||||
call mtr.add_suppression("WSREP: write_handler().*");
|
||||
--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.
|
||||
--let $node_1=node_1
|
||||
|
@ -76,4 +76,8 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N
|
|||
# Restore original auto_increment_offset values.
|
||||
--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);
|
|||
|
||||
#ifdef HAVE_URING
|
||||
/** 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
|
||||
|
||||
#define INSIDE_HA_INNOBASE_CC
|
||||
|
@ -19393,9 +19393,10 @@ static MYSQL_SYSVAR_STR(version, innodb_version_str,
|
|||
#ifdef HAVE_URING
|
||||
# include <sys/utsname.h>
|
||||
static utsname uname_for_io_uring;
|
||||
#else
|
||||
static
|
||||
#endif
|
||||
|
||||
static bool innodb_use_native_aio_default()
|
||||
bool innodb_use_native_aio_default()
|
||||
{
|
||||
#ifdef HAVE_URING
|
||||
utsname &u= uname_for_io_uring;
|
||||
|
|
Loading…
Reference in a new issue