mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Merge 10.5 into 10.6
This commit is contained in:
@@ -10,7 +10,6 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
GCF-1081 : MDEV-18283 Galera test failure on galera.GCF-1081
|
||||
GCF-939 : MDEV-21520 galera.GCF-939
|
||||
MW-329 : MDEV-19962 Galera test failure on MW-329
|
||||
galera_as_slave_ctas : MDEV-28378 timeout
|
||||
@@ -20,10 +19,7 @@ galera_bf_kill_debug : MDEV-24485 wsrep::client_state::do_acquire_ownership(): A
|
||||
galera_bf_lock_wait : MDEV-21597 wsrep::transaction::start_transaction(): Assertion `active() == false' failed
|
||||
galera_encrypt_tmp_files : Get error failed to enable encryption of temporary files
|
||||
galera_gcache_recover_manytrx : MDEV-18834 Galera test failure
|
||||
galera_kill_largechanges : MDEV-18179 Galera test failure on galera.galera_kill_largechanges
|
||||
galera_mdl_race : MDEV-21524 galera.galera_mdl_race
|
||||
galera_parallel_simple : MDEV-20318 galera.galera_parallel_simple fails
|
||||
galera_pc_ignore_sb : MDEV-20888 galera.galera_pc_ignore_sb
|
||||
galera_pc_recovery : MDEV-25199 cluster fails to start up
|
||||
galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim
|
||||
galera_sst_mysqldump : MDEV-26501 : galera.galera_sst_mysqldump MTR failed: galera SST with mysqldump failed
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
connection node_2;
|
||||
connection node_1;
|
||||
connection node_1;
|
||||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1, 0), (3, 0);
|
||||
CREATE PROCEDURE proc_update ()
|
||||
BEGIN
|
||||
UPDATE t1 SET f2 = 1 where f1 > 0;
|
||||
END|
|
||||
connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
||||
SET GLOBAL wsrep_provider_options = 'dbug=d,commit_monitor_master_enter_sync';
|
||||
connection node_1;
|
||||
CALL proc_update ();;
|
||||
connection node_1a;
|
||||
SET SESSION wsrep_sync_wait = 0;
|
||||
SET SESSION wsrep_on = 0;
|
||||
SET SESSION wsrep_on = 1;
|
||||
connection node_1a;
|
||||
SET GLOBAL DEBUG = 'd,sync.wsrep_before_BF_victim_unlock';
|
||||
Warnings:
|
||||
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
|
||||
connection node_2;
|
||||
INSERT INTO t1 VALUES (2, 2);;
|
||||
connection node_1a;
|
||||
SET SESSION DEBUG_SYNC = 'now WAIT_FOR sync.wsrep_before_BF_victim_unlock_reached';
|
||||
SET GLOBAL DEBUG = '';
|
||||
Warnings:
|
||||
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
|
||||
connection node_1a;
|
||||
SET GLOBAL wsrep_provider_options = 'dbug=';
|
||||
SET GLOBAL wsrep_provider_options = 'signal=commit_monitor_master_enter_sync';
|
||||
connection node_2;
|
||||
SELECT * FROM t1;
|
||||
f1 f2
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
connection node_1;
|
||||
SELECT * FROM t1;
|
||||
f1 f2
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
wsrep_local_replays
|
||||
1
|
||||
DROP PROCEDURE proc_update;
|
||||
DROP TABLE t1;
|
||||
@@ -1,24 +0,0 @@
|
||||
connection node_2;
|
||||
connection node_1;
|
||||
connection node_1;
|
||||
connection node_2;
|
||||
connection node_1;
|
||||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
|
||||
CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB;
|
||||
INSERT INTO ten VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10),(11);
|
||||
CREATE TABLE t1 (f1 VARCHAR(128)) ENGINE=InnoDB;
|
||||
connection node_2;
|
||||
Killing server ...
|
||||
connection node_1;
|
||||
INSERT INTO t1 SELECT REPEAT('a', 128) FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5, ten AS a6;
|
||||
connection node_2;
|
||||
connection node_2a;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
1771561
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||
VARIABLE_VALUE
|
||||
2
|
||||
connection node_1;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE ten;
|
||||
@@ -12,9 +12,9 @@ connection node_2;
|
||||
TRUNCATE TABLE t1;
|
||||
connection node_1;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
COUNT(*) = 0
|
||||
1
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
DROP TABLE t1;
|
||||
connection node_1;
|
||||
@@ -27,9 +27,9 @@ SET DEBUG_SYNC = 'now WAIT_FOR before_cert';
|
||||
connection node_2;
|
||||
TRUNCATE TABLE t1;
|
||||
connection node_1;
|
||||
SELECT COUNT(*) = 1 FROM t1;
|
||||
COUNT(*) = 1
|
||||
1
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
DROP TABLE t1;
|
||||
connection node_1;
|
||||
@@ -44,18 +44,17 @@ connection node_2;
|
||||
TRUNCATE TABLE t1;
|
||||
connection node_1a;
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached';
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
COUNT(*) = 0
|
||||
1
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue WAIT_FOR before_cert';
|
||||
connection node_2;
|
||||
TRUNCATE TABLE t1;
|
||||
connection node_1a;
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
COUNT(*) = 0
|
||||
1
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
0
|
||||
connection node_1;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
SET GLOBAL debug_dbug = NULL;
|
||||
DROP TABLE t1;
|
||||
@@ -66,8 +65,8 @@ SET GLOBAL debug_dbug = '+d,sync.wsrep_retry_autocommit';
|
||||
SET DEBUG_SYNC = 'wsrep_before_certification SIGNAL before_cert WAIT_FOR continue EXECUTE 64';
|
||||
INSERT INTO t1 VALUES (5);
|
||||
connection node_1;
|
||||
SELECT COUNT(*) = 1 FROM t1;
|
||||
COUNT(*) = 1
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
1
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
SET GLOBAL debug_dbug = NULL;
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
#
|
||||
# GCF-1081 - Assertion `!thd->sp_runtime_ctx`
|
||||
#
|
||||
# Test replaying of stored procedures
|
||||
#
|
||||
|
||||
--source include/galera_cluster.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug_sync.inc
|
||||
--source include/galera_have_debug_sync.inc
|
||||
|
||||
--connection node_1
|
||||
|
||||
--let $wsrep_local_replays_old = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_replays'`
|
||||
|
||||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1, 0), (3, 0);
|
||||
|
||||
DELIMITER |;
|
||||
CREATE PROCEDURE proc_update ()
|
||||
BEGIN
|
||||
UPDATE t1 SET f2 = 1 where f1 > 0;
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
# Block the SP
|
||||
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
|
||||
--let $galera_sync_point = commit_monitor_master_enter_sync
|
||||
--source include/galera_set_sync_point.inc
|
||||
|
||||
--connection node_1
|
||||
--send CALL proc_update ();
|
||||
|
||||
# Wait until SP is blocked
|
||||
--connection node_1a
|
||||
SET SESSION wsrep_sync_wait = 0;
|
||||
--source include/galera_wait_sync_point.inc
|
||||
|
||||
# Issue a conflicting insert on node #2
|
||||
--connection node_1a
|
||||
SET GLOBAL debug_dbug = 'd,sync.wsrep_before_BF_victim_unlock';
|
||||
|
||||
--connection node_2
|
||||
--send INSERT INTO t1 VALUES (2, 2);
|
||||
|
||||
# Wait until it BF aborts the SP
|
||||
--connection node_1a
|
||||
SET SESSION DEBUG_SYNC = 'now WAIT_FOR sync.wsrep_before_BF_victim_unlock_reached';
|
||||
SET GLOBAL debug_dbug = '';
|
||||
|
||||
# Unblock the SP
|
||||
--connection node_1a
|
||||
--source include/galera_clear_sync_point.inc
|
||||
--source include/galera_signal_sync_point.inc
|
||||
|
||||
--connection node_2
|
||||
--reap
|
||||
SELECT * FROM t1;
|
||||
|
||||
# SP succeeds
|
||||
--connection node_1
|
||||
--reap
|
||||
SELECT * FROM t1;
|
||||
|
||||
# wsrep_local_replays has increased by 1
|
||||
--let $wsrep_local_replays_new = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_replays'`
|
||||
--disable_query_log
|
||||
--eval SELECT $wsrep_local_replays_new - $wsrep_local_replays_old AS wsrep_local_replays;
|
||||
--enable_query_log
|
||||
|
||||
DROP PROCEDURE proc_update;
|
||||
DROP TABLE t1;
|
||||
@@ -1,50 +0,0 @@
|
||||
#
|
||||
# This test kill -9-s a slave while a large update has been performed on the master. SST is performed.
|
||||
#
|
||||
|
||||
--source include/big_test.inc
|
||||
--source include/galera_cluster.inc
|
||||
|
||||
# Save original auto_increment_offset values.
|
||||
--let $node_1=node_1
|
||||
--let $node_2=node_2
|
||||
--source include/auto_increment_offset_save.inc
|
||||
|
||||
--connection node_1
|
||||
# Enable the master to continue running during the split-brain situation that
|
||||
# occurs when the slave is killed
|
||||
--let $wsrep_provider_options_orig = `SELECT @@wsrep_provider_options`
|
||||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
|
||||
|
||||
CREATE TABLE ten (f1 INTEGER) ENGINE=InnoDB;
|
||||
INSERT INTO ten VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10),(11);
|
||||
CREATE TABLE t1 (f1 VARCHAR(128)) ENGINE=InnoDB;
|
||||
|
||||
--connection node_2
|
||||
--source include/kill_galera.inc
|
||||
|
||||
--connection node_1
|
||||
# We create a 128Mb (or so) transaction that is larger than gcache. The size of the gcache is not adjustable dynamically
|
||||
INSERT INTO t1 SELECT REPEAT('a', 128) FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, ten AS a5, ten AS a6;
|
||||
|
||||
--connection node_2
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
--let $galera_connection_name = node_2a
|
||||
--let $galera_server_number = 2
|
||||
--source include/galera_connect.inc
|
||||
--connection node_2a
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||
|
||||
--connection node_1
|
||||
--disable_query_log
|
||||
--eval SET GLOBAL wsrep_provider_options = '$wsrep_provider_options_orig';
|
||||
--enable_query_log
|
||||
|
||||
--let $node_2=node_2a
|
||||
--source include/auto_increment_offset_restore.inc
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE ten;
|
||||
11
mysql-test/suite/galera/t/galera_pc_ignore_sb.cnf
Normal file
11
mysql-test/suite/galera/t/galera_pc_ignore_sb.cnf
Normal file
@@ -0,0 +1,11 @@
|
||||
!include ../galera_2nodes.cnf
|
||||
|
||||
[mysqld]
|
||||
wsrep_debug=1
|
||||
|
||||
[mysqld.1]
|
||||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=1;pc.ignore_sb=true'
|
||||
|
||||
[mysqld.2]
|
||||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=1;pc.ignore_sb=true'
|
||||
|
||||
@@ -30,7 +30,7 @@ TRUNCATE TABLE t1;
|
||||
--connection node_1
|
||||
--error ER_LOCK_DEADLOCK
|
||||
--reap
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
DROP TABLE t1;
|
||||
@@ -54,8 +54,9 @@ SET DEBUG_SYNC = 'now WAIT_FOR before_cert';
|
||||
TRUNCATE TABLE t1;
|
||||
|
||||
--connection node_1
|
||||
--error 0,ER_LOCK_DEADLOCK
|
||||
--reap
|
||||
SELECT COUNT(*) = 1 FROM t1;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
DROP TABLE t1;
|
||||
@@ -82,17 +83,17 @@ TRUNCATE TABLE t1;
|
||||
|
||||
--connection node_1a
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached';
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue WAIT_FOR before_cert';
|
||||
|
||||
--connection node_2
|
||||
TRUNCATE TABLE t1;
|
||||
|
||||
--connection node_1a
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
--connection node_1
|
||||
--error ER_LOCK_DEADLOCK
|
||||
--error 0,ER_LOCK_DEADLOCK
|
||||
--reap
|
||||
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
@@ -126,7 +127,7 @@ while ($count)
|
||||
|
||||
--connection node_1a
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR wsrep_retry_autocommit_reached';
|
||||
SELECT COUNT(*) = 1 FROM t1;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
SET DEBUG_SYNC = 'now SIGNAL wsrep_retry_autocommit_continue';
|
||||
|
||||
--dec $count
|
||||
@@ -135,8 +136,9 @@ while ($count)
|
||||
--enable_query_log
|
||||
|
||||
--connection node_1
|
||||
--error 0,ER_LOCK_DEADLOCK
|
||||
--reap
|
||||
SELECT COUNT(*) = 1 FROM t1;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
SET GLOBAL debug_dbug = NULL;
|
||||
|
||||
@@ -10,8 +10,5 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
GCF-1018B : MDEV-18534 wsrep::transaction::adopt(): Assertion `transaction.is_streaming()' failed
|
||||
GCF-1060 : MDEV-20848 galera_sr.GCF_1060
|
||||
GCF-585 : MDEV-24698 galera_sr.GCF-585 MTR failed with SIGABRT: no such a transition REPLICATING -> APPLYING
|
||||
GCF-1060 : MDEV-26528 wrong usage of mutex LOCK_thd_kill and LOCK_thd_kill
|
||||
galera_sr_shutdown_master : MDEV-23612: galera_sr.galera_sr_shutdown_master MTR failed: WSREP_SST: [ERROR] Possible timeout in receving first data from donor in gtid stage
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
#
|
||||
# Testing changing table type (not in-place)
|
||||
#
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
create table t1 (i int) engine=Connect table_type=XML option_list='xmlsup=libxml2';
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
SET NAMES utf8;
|
||||
#
|
||||
# Testing tag values
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
#
|
||||
# Beginning of grant.inc
|
||||
#
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
SET NAMES utf8;
|
||||
#
|
||||
# Testing HTML like XML file
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
SET NAMES utf8;
|
||||
CREATE TABLE t1 (i INT UNIQUE NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML FILE_NAME='xt1.xml' OPTION_LIST='xmlsup=libxml2,Rownode=N';
|
||||
ERROR HY000: Table type XML is not indexable
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
SET NAMES utf8;
|
||||
#
|
||||
# Testing expanded values
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
Warnings:
|
||||
Warning 1105 No file name. Table will use t1.xml
|
||||
#
|
||||
# Testing zipped XML tables
|
||||
#
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
--error 0,ER_UNKNOWN_ERROR
|
||||
CREATE TABLE t1 (a VARCHAR(10))
|
||||
ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=libxml2';
|
||||
@@ -12,6 +13,7 @@ if (!`SELECT count(*) FROM INFORMATION_SCHEMA.TABLES
|
||||
Skip Need LIBXML2;
|
||||
}
|
||||
DROP TABLE t1;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
--source have_libxml2.inc
|
||||
|
||||
# Overlong table type
|
||||
--error ER_UNKNOWN_ERROR
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2018, 2021, MariaDB Corporation.
|
||||
Copyright (c) 2018, 2022, MariaDB Corporation.
|
||||
|
||||
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 the Free Software
|
||||
@@ -154,9 +154,8 @@ page_cur_tuple_insert(
|
||||
MY_ATTRIBUTE((nonnull, warn_unused_result));
|
||||
/***********************************************************//**
|
||||
Inserts a record next to page cursor on an uncompressed page.
|
||||
Returns pointer to inserted record if succeed, i.e., enough
|
||||
space available, NULL otherwise. The cursor stays at the same position.
|
||||
@return pointer to record if succeed, NULL otherwise */
|
||||
@return pointer to record
|
||||
@retval nullptr if not enough space was available */
|
||||
rec_t*
|
||||
page_cur_insert_rec_low(
|
||||
/*====================*/
|
||||
|
||||
@@ -901,7 +901,7 @@ public:
|
||||
/**
|
||||
@return TRX_RSEG_HISTORY length (number of committed transactions to purge)
|
||||
*/
|
||||
uint32_t history_size();
|
||||
size_t history_size();
|
||||
|
||||
|
||||
/**
|
||||
@@ -909,13 +909,13 @@ public:
|
||||
@param threshold number of committed transactions
|
||||
@return whether TRX_RSEG_HISTORY length exceeds the threshold
|
||||
*/
|
||||
bool history_exceeds(uint32_t threshold);
|
||||
bool history_exceeds(size_t threshold);
|
||||
|
||||
|
||||
/**
|
||||
@return approximate history_size(), without latch protection
|
||||
*/
|
||||
TPOOL_SUPPRESS_TSAN uint32_t history_size_approx() const;
|
||||
TPOOL_SUPPRESS_TSAN size_t history_size_approx() const;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -4359,7 +4359,7 @@ lock_print_info_summary(
|
||||
fprintf(file,
|
||||
"Purge done for trx's n:o < " TRX_ID_FMT
|
||||
" undo n:o < " TRX_ID_FMT " state: %s\n"
|
||||
"History list length %u\n",
|
||||
"History list length %zu\n",
|
||||
purge_sys.tail.trx_no,
|
||||
purge_sys.tail.undo_no,
|
||||
purge_sys.enabled()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2012, Facebook Inc.
|
||||
Copyright (c) 2018, 2021, MariaDB Corporation.
|
||||
Copyright (c) 2018, 2022, MariaDB Corporation.
|
||||
|
||||
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 the Free Software
|
||||
@@ -1283,9 +1283,8 @@ inline void mtr_t::page_insert(const buf_block_t &block, bool reuse,
|
||||
|
||||
/***********************************************************//**
|
||||
Inserts a record next to page cursor on an uncompressed page.
|
||||
Returns pointer to inserted record if succeed, i.e., enough
|
||||
space available, NULL otherwise. The cursor stays at the same position.
|
||||
@return pointer to record if succeed, NULL otherwise */
|
||||
@return pointer to record
|
||||
@retval nullptr if not enough space was available */
|
||||
rec_t*
|
||||
page_cur_insert_rec_low(
|
||||
/*====================*/
|
||||
@@ -1579,8 +1578,12 @@ inc_dir:
|
||||
const byte *r= rec;
|
||||
const byte *c= cur->rec;
|
||||
const byte *c_end= cur->rec + data_size;
|
||||
static_assert(REC_N_OLD_EXTRA_BYTES == REC_N_NEW_EXTRA_BYTES + 1, "");
|
||||
if (c <= insert_buf && c_end > insert_buf)
|
||||
c_end= insert_buf;
|
||||
else if (c_end < next_rec &&
|
||||
c_end >= next_rec - REC_N_OLD_EXTRA_BYTES + comp)
|
||||
c_end= next_rec - REC_N_OLD_EXTRA_BYTES + comp;
|
||||
else
|
||||
c_end= std::min<const byte*>(c_end, block->page.frame + srv_page_size -
|
||||
PAGE_DIR - PAGE_DIR_SLOT_SIZE *
|
||||
|
||||
@@ -520,7 +520,7 @@ static srv_sys_t srv_sys;
|
||||
struct purge_coordinator_state
|
||||
{
|
||||
/** Snapshot of the last history length before the purge call.*/
|
||||
uint32 m_history_length;
|
||||
size_t m_history_length;
|
||||
Atomic_counter<int> m_running;
|
||||
private:
|
||||
ulint count;
|
||||
@@ -1617,7 +1617,7 @@ static bool srv_purge_should_exit()
|
||||
return true;
|
||||
|
||||
/* Slow shutdown was requested. */
|
||||
const uint32_t history_size= trx_sys.history_size();
|
||||
const size_t history_size= trx_sys.history_size();
|
||||
if (history_size)
|
||||
{
|
||||
static time_t progress_time;
|
||||
@@ -1627,9 +1627,9 @@ static bool srv_purge_should_exit()
|
||||
progress_time= now;
|
||||
#if defined HAVE_SYSTEMD && !defined EMBEDDED_LIBRARY
|
||||
service_manager_extend_timeout(INNODB_EXTEND_TIMEOUT_INTERVAL,
|
||||
"InnoDB: to purge %u transactions",
|
||||
"InnoDB: to purge %zu transactions",
|
||||
history_size);
|
||||
ib::info() << "to purge " << history_size << " transactions";
|
||||
sql_print_information("InnoDB: to purge %zu transactions", history_size);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, 2021, MariaDB Corporation.
|
||||
Copyright (c) 2017, 2022, MariaDB Corporation.
|
||||
|
||||
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 the Free Software
|
||||
@@ -206,10 +206,10 @@ void trx_sys_t::create()
|
||||
rw_trx_hash.init();
|
||||
}
|
||||
|
||||
uint32_t trx_sys_t::history_size()
|
||||
size_t trx_sys_t::history_size()
|
||||
{
|
||||
ut_ad(is_initialised());
|
||||
uint32_t size= 0;
|
||||
size_t size= 0;
|
||||
for (auto &rseg : rseg_array)
|
||||
{
|
||||
rseg.latch.rd_lock(SRW_LOCK_CALL);
|
||||
@@ -220,10 +220,10 @@ uint32_t trx_sys_t::history_size()
|
||||
return size;
|
||||
}
|
||||
|
||||
bool trx_sys_t::history_exceeds(uint32_t threshold)
|
||||
bool trx_sys_t::history_exceeds(size_t threshold)
|
||||
{
|
||||
ut_ad(is_initialised());
|
||||
uint32_t size= 0;
|
||||
size_t size= 0;
|
||||
bool exceeds= false;
|
||||
size_t i;
|
||||
for (i= 0; i < array_elements(rseg_array); i++)
|
||||
@@ -251,10 +251,10 @@ TPOOL_SUPPRESS_TSAN bool trx_sys_t::history_exists()
|
||||
return false;
|
||||
}
|
||||
|
||||
TPOOL_SUPPRESS_TSAN uint32_t trx_sys_t::history_size_approx() const
|
||||
TPOOL_SUPPRESS_TSAN size_t trx_sys_t::history_size_approx() const
|
||||
{
|
||||
ut_ad(is_initialised());
|
||||
uint32_t size= 0;
|
||||
size_t size= 0;
|
||||
for (auto &rseg : rseg_array)
|
||||
size+= rseg.history_size;
|
||||
return size;
|
||||
|
||||
@@ -7407,8 +7407,9 @@ int spider_db_init(
|
||||
|
||||
if (my_gethwaddr((uchar *) addr))
|
||||
{
|
||||
my_printf_error(ER_SPIDER_CANT_NUM, ER_SPIDER_CANT_STR1, MYF(0),
|
||||
my_printf_error(ER_SPIDER_CANT_NUM, ER_SPIDER_CANT_STR1, MYF(ME_WARNING),
|
||||
"get hardware address with error ", errno);
|
||||
bzero(addr,6);
|
||||
}
|
||||
spider_unique_id.str = spider_unique_id_buf;
|
||||
spider_unique_id.length = my_sprintf(spider_unique_id_buf,
|
||||
|
||||
Reference in New Issue
Block a user