diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-02-15 19:28:58 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-02-15 19:28:58 +0200 |
commit | a9e00a014d52587299ee473a3939c7ba0a26873e (patch) | |
tree | 388873f33476ea978a424a1eab3ede706ec80b35 | |
parent | f8b3c661231f98ce7a84480e49d7175a2bfc25a8 (diff) | |
parent | 8251a9fb93075a72074bd7fd10faee5165014b7f (diff) | |
download | mariadb-git-a9e00a014d52587299ee473a3939c7ba0a26873e.tar.gz |
Merge 10.8 into 10.9
-rw-r--r-- | extra/mariabackup/xtrabackup.cc | 15 | ||||
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 1 | ||||
-rw-r--r-- | storage/innobase/include/log0log.h | 6 | ||||
-rw-r--r-- | storage/innobase/include/os0file.h | 1 | ||||
-rw-r--r-- | storage/innobase/log/log0log.cc | 2 | ||||
-rw-r--r-- | storage/innobase/log/log0recv.cc | 12 | ||||
-rw-r--r-- | storage/innobase/os/os0file.cc | 1 | ||||
-rw-r--r-- | storage/innobase/srv/srv0start.cc | 31 |
8 files changed, 33 insertions, 36 deletions
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 673ff3999cd..851c83c76db 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -2274,10 +2274,10 @@ static bool innodb_init() bool ret; const std::string ib_logfile0{get_log_file_path()}; - os_file_delete_if_exists(innodb_log_file_key, ib_logfile0.c_str(), nullptr); - pfs_os_file_t file= os_file_create(innodb_log_file_key, ib_logfile0.c_str(), - OS_FILE_CREATE, OS_FILE_NORMAL, - OS_DATA_FILE_NO_O_DIRECT, false, &ret); + os_file_delete_if_exists_func(ib_logfile0.c_str(), nullptr); + os_file_t file= os_file_create_func(ib_logfile0.c_str(), + OS_FILE_CREATE, OS_FILE_NORMAL, + OS_DATA_FILE_NO_O_DIRECT, false, &ret); if (!ret) { invalid_log: @@ -2298,13 +2298,12 @@ static bool innodb_init() #ifdef _WIN32 DWORD len; - ret= WriteFile(os_file_t{file}, log_hdr_buf, sizeof log_hdr_buf, + ret= WriteFile(file, log_hdr_buf, sizeof log_hdr_buf, &len, nullptr) && len == sizeof log_hdr_buf; #else - ret= sizeof log_hdr_buf == write(os_file_t{file}, log_hdr_buf, - sizeof log_hdr_buf); + ret= sizeof log_hdr_buf == write(file, log_hdr_buf, sizeof log_hdr_buf); #endif - if (!os_file_close(file) || !ret) + if (!os_file_close_func(file) || !ret) goto invalid_log; return false; } diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index bf2ab743a4c..c096c3c4a59 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -643,7 +643,6 @@ static PSI_thread_info all_innodb_threads[] = { performance schema instrumented if "UNIV_PFS_IO" is defined */ static PSI_file_info all_innodb_files[] = { PSI_KEY(innodb_data_file), - PSI_KEY(innodb_log_file), PSI_KEY(innodb_temp_file) }; # endif /* UNIV_PFS_IO */ diff --git a/storage/innobase/include/log0log.h b/storage/innobase/include/log0log.h index c45cdd7c676..00ed594c709 100644 --- a/storage/innobase/include/log0log.h +++ b/storage/innobase/include/log0log.h @@ -55,7 +55,7 @@ std::string get_log_file_path(const char *filename= LOG_FILE_NAME); static inline void delete_log_file(const char* suffix) { auto path = get_log_file_path(LOG_FILE_NAME_PREFIX).append(suffix); - os_file_delete_if_exists(innodb_log_file_key, path.c_str(), nullptr); + os_file_delete_if_exists_func(path.c_str(), nullptr); } struct completion_callback; @@ -128,10 +128,10 @@ struct log_t; class log_file_t { friend log_t; - pfs_os_file_t m_file; + os_file_t m_file{OS_FILE_CLOSED}; public: log_file_t()= default; - log_file_t(pfs_os_file_t file) noexcept : m_file(file) {} + log_file_t(os_file_t file) noexcept : m_file(file) {} /** Open a file @return file size in bytes diff --git a/storage/innobase/include/os0file.h b/storage/innobase/include/os0file.h index 2910b8c78a0..c676f8f6d1c 100644 --- a/storage/innobase/include/os0file.h +++ b/storage/innobase/include/os0file.h @@ -447,7 +447,6 @@ bool os_file_close_func(os_file_t file); /* Keys to register InnoDB I/O with performance schema */ extern mysql_pfs_key_t innodb_data_file_key; -extern mysql_pfs_key_t innodb_log_file_key; extern mysql_pfs_key_t innodb_temp_file_key; /* Following four macros are instumentations to register diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc index d07e0ff1f7a..b7254ef2baa 100644 --- a/storage/innobase/log/log0log.cc +++ b/storage/innobase/log/log0log.cc @@ -146,7 +146,7 @@ dberr_t log_file_t::close() noexcept { ut_a(is_opened()); - if (!os_file_close(m_file)) + if (!os_file_close_func(m_file)) return DB_ERROR; m_file= OS_FILE_CLOSED; diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index 53542247fb3..8ca25b5c9d5 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -1639,10 +1639,10 @@ dberr_t recv_sys_t::find_checkpoint() file_checkpoint= 0; std::string path{get_log_file_path()}; bool success; - pfs_os_file_t file= os_file_create(innodb_log_file_key, path.c_str(), + os_file_t file{os_file_create_func(path.c_str(), OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT, OS_FILE_NORMAL, OS_LOG_FILE, - srv_read_only_mode, &success); + srv_read_only_mode, &success)}; if (file == OS_FILE_CLOSED) return DB_ERROR; const os_offset_t size{os_file_get_size(file)}; @@ -1665,10 +1665,10 @@ dberr_t recv_sys_t::find_checkpoint() for (int i= 1; i < 101; i++) { path= get_log_file_path(LOG_FILE_NAME_PREFIX).append(std::to_string(i)); - file= os_file_create(innodb_log_file_key, path.c_str(), - OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT | - OS_FILE_ON_ERROR_SILENT, - OS_FILE_NORMAL, OS_LOG_FILE, true, &success); + file= os_file_create_func(path.c_str(), + OS_FILE_OPEN | OS_FILE_ON_ERROR_NO_EXIT | + OS_FILE_ON_ERROR_SILENT, + OS_FILE_NORMAL, OS_LOG_FILE, true, &success); if (file == OS_FILE_CLOSED) break; const os_offset_t sz{os_file_get_size(file)}; diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index f7038d693f1..74d1003276f 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -166,7 +166,6 @@ extern uint page_zip_level; #ifdef UNIV_PFS_IO /* Keys to register InnoDB I/O with performance schema */ mysql_pfs_key_t innodb_data_file_key; -mysql_pfs_key_t innodb_log_file_key; mysql_pfs_key_t innodb_temp_file_key; #endif diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index f812fcf3ead..f915fb09769 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -200,10 +200,11 @@ static dberr_t create_log_file(bool create_new_db, lsn_t lsn) std::string logfile0{get_log_file_path("ib_logfile101")}; bool ret; - pfs_os_file_t file = os_file_create( - innodb_log_file_key, logfile0.c_str(), - OS_FILE_CREATE|OS_FILE_ON_ERROR_NO_EXIT, OS_FILE_NORMAL, - OS_LOG_FILE, srv_read_only_mode, &ret); + os_file_t file{ + os_file_create_func(logfile0.c_str(), + OS_FILE_CREATE | OS_FILE_ON_ERROR_NO_EXIT, + OS_FILE_NORMAL, OS_LOG_FILE, false, &ret) + }; if (!ret) { sql_print_error("InnoDB: Cannot create %.*s", @@ -215,7 +216,7 @@ err_exit: ret = os_file_set_size(logfile0.c_str(), file, srv_log_file_size); if (!ret) { - os_file_close(file); + os_file_close_func(file); ib::error() << "Cannot set log file " << logfile0 << " size to " << ib::bytes_iec{srv_log_file_size}; goto err_exit; @@ -489,7 +490,7 @@ dberr_t srv_check_undo_redo_logs_exists() { bool ret; - pfs_os_file_t fh; + os_file_t fh; char name[OS_FILE_MAX_PATH]; /* Check if any undo tablespaces exist */ @@ -497,8 +498,8 @@ srv_check_undo_redo_logs_exists() snprintf(name, sizeof name, "%s/undo%03zu", srv_undo_dir, i); - fh = os_file_create( - innodb_data_file_key, name, + fh = os_file_create_func( + name, OS_FILE_OPEN_RETRY | OS_FILE_ON_ERROR_NO_EXIT | OS_FILE_ON_ERROR_SILENT, @@ -508,7 +509,7 @@ srv_check_undo_redo_logs_exists() &ret); if (ret) { - os_file_close(fh); + os_file_close_func(fh); ib::error() << "undo tablespace '" << name << "' exists." " Creating system tablespace with existing undo" @@ -522,14 +523,14 @@ srv_check_undo_redo_logs_exists() /* Check if redo log file exists */ auto logfilename = get_log_file_path(); - fh = os_file_create(innodb_log_file_key, logfilename.c_str(), - OS_FILE_OPEN_RETRY | OS_FILE_ON_ERROR_NO_EXIT - | OS_FILE_ON_ERROR_SILENT, - OS_FILE_NORMAL, OS_LOG_FILE, srv_read_only_mode, - &ret); + fh = os_file_create_func(logfilename.c_str(), + OS_FILE_OPEN_RETRY | OS_FILE_ON_ERROR_NO_EXIT + | OS_FILE_ON_ERROR_SILENT, + OS_FILE_NORMAL, OS_LOG_FILE, + srv_read_only_mode, &ret); if (ret) { - os_file_close(fh); + os_file_close_func(fh); ib::error() << "redo log file '" << logfilename << "' exists. Creating system tablespace with" " existing redo log file is not recommended." |