Skip to content

Commit 167eac7

Browse files
committed
Merge branch '10.6' into 10.7
2 parents 2b70078 + 415d269 commit 167eac7

File tree

8 files changed

+85
-50
lines changed

8 files changed

+85
-50
lines changed

extra/mariabackup/xtrabackup.cc

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1392,6 +1392,11 @@ uint xb_client_options_count = array_elements(xb_client_options);
13921392
static const char *dbug_option;
13931393
#endif
13941394

1395+
#ifdef HAVE_URING
1396+
extern const char *io_uring_may_be_unsafe;
1397+
bool innodb_use_native_aio_default();
1398+
#endif
1399+
13951400
struct my_option xb_server_options[] =
13961401
{
13971402
{"datadir", 'h', "Path to the database root.", (G_PTR*) &mysql_data_home,
@@ -1508,7 +1513,12 @@ struct my_option xb_server_options[] =
15081513
"Use native AIO if supported on this platform.",
15091514
(G_PTR*) &srv_use_native_aio,
15101515
(G_PTR*) &srv_use_native_aio, 0, GET_BOOL, NO_ARG,
1511-
TRUE, 0, 0, 0, 0, 0},
1516+
#ifdef HAVE_URING
1517+
innodb_use_native_aio_default(),
1518+
#else
1519+
TRUE,
1520+
#endif
1521+
0, 0, 0, 0, 0},
15121522
{"innodb_page_size", OPT_INNODB_PAGE_SIZE,
15131523
"The universal page size of the database.",
15141524
(G_PTR*) &innobase_page_size, (G_PTR*) &innobase_page_size, 0,
@@ -2071,8 +2081,12 @@ static bool innodb_init_param()
20712081
msg("InnoDB: Using Linux native AIO");
20722082
}
20732083
#elif defined(HAVE_URING)
2074-
2075-
if (srv_use_native_aio) {
2084+
if (!srv_use_native_aio) {
2085+
} else if (io_uring_may_be_unsafe) {
2086+
msg("InnoDB: Using liburing on this kernel %s may cause hangs;"
2087+
" see https://jira.mariadb.org/browse/MDEV-26674",
2088+
io_uring_may_be_unsafe);
2089+
} else {
20762090
msg("InnoDB: Using liburing");
20772091
}
20782092
#else
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# MDEV-20699 do not cache SP in SHOW CREATE
2+
# Warmup round, this might allocate some memory for session variable
3+
# and the output
4+
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
5+
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
6+
CREATE PROCEDURE sp0() SELECT 1;
7+
SHOW CREATE PROCEDURE sp0;
8+
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
9+
sp0 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp0`()
10+
SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
11+
DROP PROCEDURE sp0;
12+
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
13+
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
14+
CREATE PROCEDURE sp1() SELECT 1;
15+
SHOW CREATE PROCEDURE sp1;
16+
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
17+
sp1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
18+
SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
19+
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
20+
VARIABLE_VALUE-@local_mem_used
21+
0
22+
DROP PROCEDURE sp1;
23+
#
24+
# End of 10.3 tests
25+
#
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
--source include/not_valgrind.inc
3+
4+
--echo # MDEV-20699 do not cache SP in SHOW CREATE
5+
--echo # Warmup round, this might allocate some memory for session variable
6+
--echo # and the output
7+
8+
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
9+
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
10+
CREATE PROCEDURE sp0() SELECT 1;
11+
SHOW CREATE PROCEDURE sp0;
12+
DROP PROCEDURE sp0;
13+
14+
#Check that CREATE/SHOW does not use memory in caches.
15+
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
16+
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
17+
CREATE PROCEDURE sp1() SELECT 1;
18+
SHOW CREATE PROCEDURE sp1;
19+
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
20+
# FIXME: MDEV-26754 main.sp test fails for embedded server
21+
#SELECT VARIABLE_VALUE-@global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
22+
DROP PROCEDURE sp1;
23+
24+
--echo #
25+
--echo # End of 10.3 tests
26+
--echo #

mysql-test/main/sp.result

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8869,25 +8869,6 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
88698869
BEGIN
88708870
RETURN '';
88718871
END' at line 2
8872-
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
8873-
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
8874-
CREATE PROCEDURE sp0() SELECT 1;
8875-
SHOW CREATE PROCEDURE sp0;
8876-
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
8877-
sp0 STRICT_ALL_TABLES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp0`()
8878-
SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
8879-
DROP PROCEDURE sp0;
8880-
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
8881-
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
8882-
CREATE PROCEDURE sp1() SELECT 1;
8883-
SHOW CREATE PROCEDURE sp1;
8884-
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
8885-
sp1 STRICT_ALL_TABLES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
8886-
SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
8887-
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
8888-
VARIABLE_VALUE-@local_mem_used
8889-
0
8890-
DROP PROCEDURE sp1;
88918872
# End of 10.3 tests
88928873
#
88938874
# Start of 10.4 tests

mysql-test/main/sp.test

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10418,24 +10418,6 @@ END;
1041810418
$$
1041910419
DELIMITER ;$$
1042010420

10421-
# MDEV-20699 do not cache SP in SHOW CREATE
10422-
# Warmup round, this might allocate some memory for session variable
10423-
# and the output
10424-
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
10425-
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
10426-
CREATE PROCEDURE sp0() SELECT 1;
10427-
SHOW CREATE PROCEDURE sp0;
10428-
DROP PROCEDURE sp0;
10429-
10430-
#Check that CREATE/SHOW does not use memory in caches.
10431-
SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
10432-
SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
10433-
CREATE PROCEDURE sp1() SELECT 1;
10434-
SHOW CREATE PROCEDURE sp1;
10435-
SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
10436-
# FIXME: MDEV-26754 main.sp test fails for embedded server
10437-
#SELECT VARIABLE_VALUE-@global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED';
10438-
DROP PROCEDURE sp1;
1043910421
--echo # End of 10.3 tests
1044010422

1044110423

mysql-test/suite/galera/r/galera_ssl_upgrade.result

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
connection node_2;
22
connection node_1;
33
connection node_1;
4-
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*");
4+
call mtr.add_suppression("WSREP: write_handler().*");
55
connection node_2;
6-
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*");
6+
call mtr.add_suppression("WSREP: write_handler():.*");
77
connection node_1;
88
connection node_2;
99
connection node_1;
@@ -27,5 +27,7 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N
2727
VARIABLE_VALUE = 2
2828
1
2929
connection node_2;
30-
disconnect node_2;
31-
disconnect node_1;
30+
connection node_1;
31+
call mtr.add_suppression("WSREP: write_handler().*");
32+
connection node_2;
33+
call mtr.add_suppression("WSREP: write_handler():.*");

mysql-test/suite/galera/t/galera_ssl_upgrade.test

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
--source include/have_ssl_communication.inc
1010

1111
--connection node_1
12-
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*");
12+
call mtr.add_suppression("WSREP: write_handler().*");
1313
--connection node_2
14-
call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*");
14+
call mtr.add_suppression("WSREP: write_handler():.*");
1515

1616
# Save original auto_increment_offset values.
1717
--let $node_1=node_1
@@ -76,4 +76,8 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N
7676
# Restore original auto_increment_offset values.
7777
--source include/auto_increment_offset_restore.inc
7878

79-
--source include/galera_end.inc
79+
--connection node_1
80+
call mtr.add_suppression("WSREP: write_handler().*");
81+
--connection node_2
82+
call mtr.add_suppression("WSREP: write_handler():.*");
83+

storage/innobase/handler/ha_innodb.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ void close_thread_tables(THD* thd);
158158

159159
#ifdef HAVE_URING
160160
/** The Linux kernel version if io_uring() is considered unsafe */
161-
static const char *io_uring_may_be_unsafe;
161+
const char *io_uring_may_be_unsafe;
162162
#endif
163163

164164
#define INSIDE_HA_INNOBASE_CC
@@ -19393,9 +19393,10 @@ static MYSQL_SYSVAR_STR(version, innodb_version_str,
1939319393
#ifdef HAVE_URING
1939419394
# include <sys/utsname.h>
1939519395
static utsname uname_for_io_uring;
19396+
#else
19397+
static
1939619398
#endif
19397-
19398-
static bool innodb_use_native_aio_default()
19399+
bool innodb_use_native_aio_default()
1939919400
{
1940019401
#ifdef HAVE_URING
1940119402
utsname &u= uname_for_io_uring;

0 commit comments

Comments
 (0)