mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
MDEV-22721 Remove bloat caused by InnoDB logger class
Introduce a new ATTRIBUTE_NOINLINE to ib::logger member functions, and add UNIV_UNLIKELY hints to callers. Also, remove some crash reporting output. If needed, the information will be available using debugging tools. Furthermore, remove some fts_enable_diag_print output that included indexed words in raw form. The code seemed to assume that words are NUL-terminated byte strings. It is not clear whether a NUL terminator is always guaranteed to be present. Also, UCS2 or UTF-16 strings would typically contain many NUL bytes.
This commit is contained in:
parent
ad2bf1129c
commit
eba2d10ac5
38 changed files with 227 additions and 326 deletions
|
@ -2,6 +2,7 @@
|
|||
#define MY_COMPILER_INCLUDED
|
||||
|
||||
/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
Copyright (c) 2017, 2020, 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
|
||||
|
@ -150,6 +151,7 @@ struct my_aligned_storage
|
|||
|
||||
#ifdef __GNUC__
|
||||
# define ATTRIBUTE_NORETURN __attribute__((noreturn))
|
||||
# define ATTRIBUTE_NOINLINE __attribute__((noinline))
|
||||
# if MY_GNUC_PREREQ(4,3)
|
||||
/** Starting with GCC 4.3, the "cold" attribute is used to inform the
|
||||
compiler that a function is unlikely executed. The function is
|
||||
|
@ -163,8 +165,10 @@ rarely invoked function for size instead for speed. */
|
|||
# endif
|
||||
#elif defined _MSC_VER
|
||||
# define ATTRIBUTE_NORETURN __declspec(noreturn)
|
||||
# define ATTRIBUTE_NOINLINE __declspec(noinline)
|
||||
#else
|
||||
# define ATTRIBUTE_NORETURN /* empty */
|
||||
# define ATTRIBUTE_NOINLINE /* empty */
|
||||
#endif
|
||||
|
||||
#ifndef ATTRIBUTE_COLD
|
||||
|
|
|
@ -3725,9 +3725,9 @@ lookup:
|
|||
ut_ad(!hash_lock);
|
||||
dberr_t err = buf_read_page(page_id, page_size);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::error() << "Reading compressed page " << page_id
|
||||
<< " failed with error: " << ut_strerr(err);
|
||||
<< " failed with error: " << err;
|
||||
|
||||
goto err_exit;
|
||||
}
|
||||
|
@ -5250,7 +5250,8 @@ buf_page_init(
|
|||
|
||||
if (hash_page == NULL) {
|
||||
/* Block not found in hash table */
|
||||
} else if (buf_pool_watch_is_sentinel(buf_pool, hash_page)) {
|
||||
} else if (UNIV_LIKELY(buf_pool_watch_is_sentinel(buf_pool,
|
||||
hash_page))) {
|
||||
/* Preserve the reference count. */
|
||||
ib_uint32_t buf_fix_count = hash_page->buf_fix_count;
|
||||
|
||||
|
@ -5260,18 +5261,8 @@ buf_page_init(
|
|||
|
||||
buf_pool_watch_remove(buf_pool, hash_page);
|
||||
} else {
|
||||
|
||||
ib::error() << "Page " << page_id
|
||||
<< " already found in the hash table: "
|
||||
<< hash_page << ", " << block;
|
||||
|
||||
ut_d(buf_page_mutex_exit(block));
|
||||
ut_d(buf_pool_mutex_exit(buf_pool));
|
||||
ut_d(buf_print());
|
||||
ut_d(buf_LRU_print());
|
||||
ut_d(buf_validate());
|
||||
ut_d(buf_LRU_validate());
|
||||
ut_error;
|
||||
ib::fatal() << "Page already foudn in the hash table: "
|
||||
<< page_id;
|
||||
}
|
||||
|
||||
ut_ad(!block->page.in_zip_hash);
|
||||
|
@ -7253,6 +7244,7 @@ operator<<(
|
|||
return(out);
|
||||
}
|
||||
|
||||
#if defined UNIV_DEBUG_PRINT || defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
|
||||
/** Print the given buf_pool_t object.
|
||||
@param[in,out] out the output stream
|
||||
@param[in] buf_pool the buf_pool_t object to be printed
|
||||
|
@ -7280,6 +7272,7 @@ operator<<(
|
|||
<< ", written=" << buf_pool.stat.n_pages_written << "]";
|
||||
return(out);
|
||||
}
|
||||
#endif /* UNIV_DEBUG_PRINT || UNIV_DEBUG || UNIV_BUF_DEBUG */
|
||||
|
||||
/** Encrypt a buffer of temporary tablespace
|
||||
@param[in] offset Page offset
|
||||
|
|
|
@ -600,11 +600,11 @@ buf_dblwr_process()
|
|||
page_id, page_size,
|
||||
0, page_size.physical(), read_buf, NULL);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::warn()
|
||||
<< "Double write buffer recovery: "
|
||||
<< page_id << " read failed with "
|
||||
<< "error: " << ut_strerr(err);
|
||||
<< "error: " << err;
|
||||
}
|
||||
|
||||
const bool is_all_zero = buf_is_zeroes(
|
||||
|
|
|
@ -578,18 +578,11 @@ buf_flush_ready_for_replace(
|
|||
#endif /* UNIV_DEBUG */
|
||||
ut_ad(mutex_own(buf_page_get_mutex(bpage)));
|
||||
ut_ad(bpage->in_LRU_list);
|
||||
ut_a(buf_page_in_file(bpage));
|
||||
|
||||
if (buf_page_in_file(bpage)) {
|
||||
|
||||
return(bpage->oldest_modification == 0
|
||||
&& bpage->buf_fix_count == 0
|
||||
&& buf_page_get_io_fix(bpage) == BUF_IO_NONE);
|
||||
}
|
||||
|
||||
ib::fatal() << "Buffer block " << bpage << " state " << bpage->state
|
||||
<< " in the LRU list!";
|
||||
|
||||
return(FALSE);
|
||||
return bpage->oldest_modification == 0
|
||||
&& bpage->buf_fix_count == 0
|
||||
&& buf_page_get_io_fix(bpage) == BUF_IO_NONE;
|
||||
}
|
||||
|
||||
/********************************************************************//**
|
||||
|
|
|
@ -1824,46 +1824,9 @@ buf_LRU_block_remove_hashed(
|
|||
}
|
||||
|
||||
hashed_bpage = buf_page_hash_get_low(buf_pool, bpage->id);
|
||||
if (bpage != hashed_bpage) {
|
||||
ib::error() << "Page " << bpage->id
|
||||
<< " not found in the hash table";
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
|
||||
|
||||
ib::error()
|
||||
<< "in_page_hash:" << bpage->in_page_hash
|
||||
<< " in_zip_hash:" << bpage->in_zip_hash
|
||||
// << " in_free_list:"<< bpage->in_fee_list
|
||||
<< " in_flush_list:" << bpage->in_flush_list
|
||||
<< " in_LRU_list:" << bpage->in_LRU_list
|
||||
<< " zip.data:" << bpage->zip.data
|
||||
<< " zip_size:" << bpage->size.logical()
|
||||
<< " page_state:" << buf_page_get_state(bpage);
|
||||
#else
|
||||
ib::error()
|
||||
<< " zip.data:" << bpage->zip.data
|
||||
<< " zip_size:" << bpage->size.logical()
|
||||
<< " page_state:" << buf_page_get_state(bpage);
|
||||
#endif
|
||||
|
||||
if (hashed_bpage) {
|
||||
|
||||
ib::error() << "In hash table we find block "
|
||||
<< hashed_bpage << " of " << hashed_bpage->id
|
||||
<< " which is not " << bpage;
|
||||
}
|
||||
|
||||
#if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
|
||||
mutex_exit(buf_page_get_mutex(bpage));
|
||||
rw_lock_x_unlock(hash_lock);
|
||||
buf_pool_mutex_exit(buf_pool);
|
||||
buf_print();
|
||||
buf_LRU_print();
|
||||
buf_validate();
|
||||
buf_LRU_validate();
|
||||
#endif /* UNIV_DEBUG || UNIV_BUF_DEBUG */
|
||||
ut_error;
|
||||
if (UNIV_UNLIKELY(bpage != hashed_bpage)) {
|
||||
ib::fatal() << "Page not found in the hash table: "
|
||||
<< bpage->id;
|
||||
}
|
||||
|
||||
ut_ad(!bpage->in_zip_hash);
|
||||
|
|
|
@ -1719,10 +1719,9 @@ dict_create_or_check_foreign_constraint_tables(void)
|
|||
"END;\n",
|
||||
FALSE, trx);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::error() << "Creation of SYS_FOREIGN and SYS_FOREIGN_COLS"
|
||||
" failed: " << ut_strerr(err) << ". Tablespace is"
|
||||
" failed: " << err << ". Tablespace is"
|
||||
" full. Dropping incompletely created tables.";
|
||||
|
||||
ut_ad(err == DB_OUT_OF_FILE_SPACE
|
||||
|
@ -1821,10 +1820,9 @@ dict_create_or_check_sys_virtual()
|
|||
"END;\n",
|
||||
FALSE, trx);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::error() << "Creation of SYS_VIRTUAL"
|
||||
" failed: " << ut_strerr(err) << ". Tablespace is"
|
||||
" failed: " << err << ". Tablespace is"
|
||||
" full or too many transactions."
|
||||
" Dropping incompletely created tables.";
|
||||
|
||||
|
@ -1902,9 +1900,9 @@ dict_foreign_eval_sql(
|
|||
return(error);
|
||||
}
|
||||
|
||||
if (error != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "Foreign key constraint creation failed: "
|
||||
<< ut_strerr(error);
|
||||
<< error;
|
||||
|
||||
mutex_enter(&dict_foreign_err_mutex);
|
||||
ut_print_timestamp(ef);
|
||||
|
@ -2353,10 +2351,9 @@ dict_create_or_check_sys_tablespace(void)
|
|||
"END;\n",
|
||||
FALSE, trx);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::error() << "Creation of SYS_TABLESPACES and SYS_DATAFILES"
|
||||
" has failed with error " << ut_strerr(err)
|
||||
" has failed with error " << err
|
||||
<< ". Dropping incompletely created tables.";
|
||||
|
||||
ut_a(err == DB_OUT_OF_FILE_SPACE
|
||||
|
|
|
@ -925,7 +925,7 @@ dict_update_filepath(
|
|||
trx->dict_operation_lock_mode = 0;
|
||||
trx_free_for_background(trx);
|
||||
|
||||
if (err == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(err == DB_SUCCESS)) {
|
||||
/* We just updated SYS_DATAFILES due to the contents in
|
||||
a link file. Make a note that we did this. */
|
||||
ib::info() << "The InnoDB data dictionary table SYS_DATAFILES"
|
||||
|
@ -935,7 +935,7 @@ dict_update_filepath(
|
|||
ib::warn() << "Error occurred while updating InnoDB data"
|
||||
" dictionary table SYS_DATAFILES for tablespace ID "
|
||||
<< space_id << " to file " << filepath << ": "
|
||||
<< ut_strerr(err) << ".";
|
||||
<< err << ".";
|
||||
}
|
||||
|
||||
return(err);
|
||||
|
|
|
@ -2355,14 +2355,14 @@ dict_stats_save_index_stat(
|
|||
");\n"
|
||||
"END;", trx);
|
||||
|
||||
if (ret != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(ret != DB_SUCCESS)) {
|
||||
if (innodb_index_stats_not_found == false &&
|
||||
index->stats_error_printed == false) {
|
||||
ib::error() << "Cannot save index statistics for table "
|
||||
<< index->table->name
|
||||
<< ", index " << index->name
|
||||
<< ", stat name \"" << stat_name << "\": "
|
||||
<< ut_strerr(ret);
|
||||
<< ret;
|
||||
index->stats_error_printed = true;
|
||||
}
|
||||
}
|
||||
|
@ -2473,9 +2473,9 @@ dict_stats_save(
|
|||
");\n"
|
||||
"END;", NULL);
|
||||
|
||||
if (ret != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(ret != DB_SUCCESS)) {
|
||||
ib::error() << "Cannot save table statistics for table "
|
||||
<< table->name << ": " << ut_strerr(ret);
|
||||
<< table->name << ": " << ret;
|
||||
|
||||
mutex_exit(&dict_sys->mutex);
|
||||
rw_lock_x_unlock(&dict_operation_lock);
|
||||
|
@ -3330,7 +3330,7 @@ dict_stats_update(
|
|||
" for table "
|
||||
<< table->name
|
||||
<< " from " TABLE_STATS_NAME_PRINT " and "
|
||||
INDEX_STATS_NAME_PRINT ": " << ut_strerr(err)
|
||||
INDEX_STATS_NAME_PRINT ": " << err
|
||||
<< ". Using transient stats method instead.";
|
||||
}
|
||||
|
||||
|
|
|
@ -298,14 +298,9 @@ fil_space_read_crypt_data(const page_size_t& page_size, const byte* page)
|
|||
type == CRYPT_SCHEME_1)
|
||||
|| iv_length != sizeof crypt_data->iv) {
|
||||
ib::error() << "Found non sensible crypt scheme: "
|
||||
<< type << "," << iv_length << " for space: "
|
||||
<< page_get_space_id(page) << " offset: "
|
||||
<< offset << " bytes: ["
|
||||
<< page[offset + 2 + MAGIC_SZ]
|
||||
<< page[offset + 3 + MAGIC_SZ]
|
||||
<< page[offset + 4 + MAGIC_SZ]
|
||||
<< page[offset + 5 + MAGIC_SZ]
|
||||
<< "].";
|
||||
<< type << "," << iv_length
|
||||
<< " for space: "
|
||||
<< page_get_space_id(page);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -725,8 +720,10 @@ fil_space_decrypt(
|
|||
}
|
||||
|
||||
ib::fatal() << "Unable to decrypt data-block "
|
||||
<< " src: " << src << "srclen: "
|
||||
<< srclen << " buf: " << dst << "buflen: "
|
||||
<< " src: " << static_cast<const void*>(src)
|
||||
<< "srclen: "
|
||||
<< srclen << " buf: "
|
||||
<< static_cast<const void*>(dst) << "buflen: "
|
||||
<< dstlen << " return-code: " << rc
|
||||
<< " Can't continue!";
|
||||
}
|
||||
|
|
|
@ -3228,12 +3228,12 @@ fil_discard_tablespace(
|
|||
case DB_IO_ERROR:
|
||||
ib::warn() << "While deleting tablespace " << id
|
||||
<< " in DISCARD TABLESPACE. File rename/delete"
|
||||
" failed: " << ut_strerr(err);
|
||||
" failed: " << err;
|
||||
break;
|
||||
|
||||
case DB_TABLESPACE_NOT_FOUND:
|
||||
ib::warn() << "Cannot delete tablespace " << id
|
||||
<< " in DISCARD TABLESPACE: " << ut_strerr(err);
|
||||
<< " in DISCARD TABLESPACE: " << err;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -5177,7 +5177,7 @@ fil_aio_wait(
|
|||
ib::error() << "Failed to read file '"
|
||||
<< node->name
|
||||
<< "' at offset " << offset
|
||||
<< ": " << ut_strerr(err);
|
||||
<< ": " << err;
|
||||
}
|
||||
|
||||
fil_space_release_for_io(space);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2013, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, 2018, MariaDB Corporation.
|
||||
Copyright (c) 2017, 2020, 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
|
||||
|
@ -331,7 +331,7 @@ Datafile::read_first_page(bool read_only_mode)
|
|||
ib::error()
|
||||
<< "Cannot read first page of '"
|
||||
<< m_filepath << "' "
|
||||
<< ut_strerr(err);
|
||||
<< err;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1437,7 +1437,7 @@ fsp_alloc_free_page(
|
|||
ut_a(!is_system_tablespace(space_id));
|
||||
if (page_no >= FSP_EXTENT_SIZE) {
|
||||
ib::error() << "Trying to extend a single-table"
|
||||
" tablespace " << space << " , by single"
|
||||
" tablespace " << space->name << " , by single"
|
||||
" page(s) though the space size " << space_size
|
||||
<< ". Page no " << page_no << ".";
|
||||
return(NULL);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, 2019, MariaDB Corporation.
|
||||
Copyright (c) 2017, 2020, 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
|
||||
|
@ -317,9 +317,7 @@ fts_config_get_index_ulint(
|
|||
error = fts_config_get_index_value(trx, index, name, &value);
|
||||
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
|
||||
ib::error() << "(" << ut_strerr(error) << ") reading `"
|
||||
<< name << "'";
|
||||
ib::error() << "(" << error << ") reading `" << name << "'";
|
||||
} else {
|
||||
*int_value = strtoul((char*) value.f_str, NULL, 10);
|
||||
}
|
||||
|
@ -357,9 +355,7 @@ fts_config_set_index_ulint(
|
|||
error = fts_config_set_index_value(trx, index, name, &value);
|
||||
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
|
||||
ib::error() << "(" << ut_strerr(error) << ") writing `"
|
||||
<< name << "'";
|
||||
ib::error() << "(" << error << ") writing `" << name << "'";
|
||||
}
|
||||
|
||||
ut_free(value.f_str);
|
||||
|
@ -391,8 +387,7 @@ fts_config_get_ulint(
|
|||
error = fts_config_get_value(trx, fts_table, name, &value);
|
||||
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "(" << ut_strerr(error) << ") reading `"
|
||||
<< name << "'";
|
||||
ib::error() << "(" << error << ") reading `" << name << "'";
|
||||
} else {
|
||||
*int_value = strtoul((char*) value.f_str, NULL, 10);
|
||||
}
|
||||
|
@ -430,8 +425,7 @@ fts_config_set_ulint(
|
|||
error = fts_config_set_value(trx, fts_table, name, &value);
|
||||
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "(" << ut_strerr(error) << ") writing `"
|
||||
<< name << "'";
|
||||
ib::error() << "(" << error << ") writing `" << name << "'";
|
||||
}
|
||||
|
||||
ut_free(value.f_str);
|
||||
|
|
|
@ -510,7 +510,7 @@ cleanup:
|
|||
for (;;) {
|
||||
dberr_t error = fts_eval_sql(trx, graph);
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
fts_sql_commit(trx);
|
||||
stopword_info->status = STOPWORD_USER_TABLE;
|
||||
break;
|
||||
|
@ -523,7 +523,7 @@ cleanup:
|
|||
|
||||
trx->error_state = DB_SUCCESS;
|
||||
} else {
|
||||
ib::error() << "Error '" << ut_strerr(error)
|
||||
ib::error() << "Error '" << error
|
||||
<< "' while reading user stopword"
|
||||
" table.";
|
||||
ret = FALSE;
|
||||
|
@ -1454,9 +1454,9 @@ fts_drop_table(
|
|||
error = row_drop_table_for_mysql(table_name, trx,
|
||||
SQLCOM_DROP_DB, false, false);
|
||||
|
||||
if (error != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "Unable to drop FTS index aux table "
|
||||
<< table_name << ": " << ut_strerr(error);
|
||||
<< table_name << ": " << error;
|
||||
}
|
||||
} else {
|
||||
error = DB_FAIL;
|
||||
|
@ -2535,8 +2535,7 @@ fts_get_max_cache_size(
|
|||
error = fts_config_get_value(
|
||||
trx, fts_table, FTS_MAX_CACHE_SIZE_IN_MB, &value);
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
value.f_str[value.f_len] = 0;
|
||||
cache_size_in_mb = strtoul((char*) value.f_str, NULL, 10);
|
||||
|
||||
|
@ -2566,7 +2565,7 @@ fts_get_max_cache_size(
|
|||
cache_size_in_mb = FTS_CACHE_SIZE_LOWER_LIMIT_IN_MB;
|
||||
}
|
||||
} else {
|
||||
ib::error() << "(" << ut_strerr(error) << ") reading max"
|
||||
ib::error() << "(" << error << ") reading max"
|
||||
" cache config value from config table";
|
||||
}
|
||||
|
||||
|
@ -2735,13 +2734,12 @@ retry:
|
|||
|
||||
func_exit:
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
fts_sql_commit(trx);
|
||||
} else {
|
||||
*doc_id = 0;
|
||||
|
||||
ib::error() << "(" << ut_strerr(error) << ") while getting"
|
||||
" next doc id.";
|
||||
ib::error() << "(" << error << ") while getting next doc id.";
|
||||
fts_sql_rollback(trx);
|
||||
|
||||
if (error == DB_DEADLOCK) {
|
||||
|
@ -2816,12 +2814,11 @@ fts_update_sync_doc_id(
|
|||
fts_que_graph_free_check_lock(&fts_table, NULL, graph);
|
||||
|
||||
if (local_trx) {
|
||||
if (error == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
fts_sql_commit(trx);
|
||||
cache->synced_doc_id = doc_id;
|
||||
} else {
|
||||
|
||||
ib::error() << "(" << ut_strerr(error) << ") while"
|
||||
ib::error() << "(" << error << ") while"
|
||||
" updating last doc id.";
|
||||
|
||||
fts_sql_rollback(trx);
|
||||
|
@ -4065,14 +4062,14 @@ fts_sync_write_words(
|
|||
|
||||
n_nodes += ib_vector_size(word->nodes);
|
||||
|
||||
if (error != DB_SUCCESS && !print_error) {
|
||||
ib::error() << "(" << ut_strerr(error) << ") writing"
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS) && !print_error) {
|
||||
ib::error() << "(" << error << ") writing"
|
||||
" word node to FTS auxiliary index table.";
|
||||
print_error = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
printf("Avg number of nodes: %lf\n",
|
||||
(double) n_nodes / (double) (n_words > 1 ? n_words : 1));
|
||||
}
|
||||
|
@ -4098,7 +4095,7 @@ fts_sync_begin(
|
|||
sync->trx = trx_allocate_for_background();
|
||||
trx_start_internal(sync->trx);
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "FTS SYNC for table " << sync->table->name
|
||||
<< ", deleted count: "
|
||||
<< ib_vector_size(cache->deleted_doc_ids)
|
||||
|
@ -4121,7 +4118,7 @@ fts_sync_index(
|
|||
|
||||
trx->op_info = "doing SYNC index";
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "SYNC words: " << rbt_size(index_cache->words);
|
||||
}
|
||||
|
||||
|
@ -4218,18 +4215,14 @@ fts_sync_commit(
|
|||
fts_cache_init(cache);
|
||||
rw_lock_x_unlock(&cache->lock);
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
fts_sql_commit(trx);
|
||||
|
||||
} else if (error != DB_SUCCESS) {
|
||||
|
||||
} else {
|
||||
fts_sql_rollback(trx);
|
||||
|
||||
ib::error() << "(" << ut_strerr(error) << ") during SYNC.";
|
||||
ib::error() << "(" << error << ") during SYNC.";
|
||||
}
|
||||
|
||||
if (fts_enable_diag_print && elapsed_time) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print) && elapsed_time) {
|
||||
ib::info() << "SYNC for table " << sync->table->name
|
||||
<< ": SYNC time: "
|
||||
<< (time(NULL) - sync->start_time)
|
||||
|
@ -4983,7 +4976,7 @@ fts_get_rows_count(
|
|||
for (;;) {
|
||||
error = fts_eval_sql(trx, graph);
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
fts_sql_commit(trx);
|
||||
|
||||
break; /* Exit the loop. */
|
||||
|
@ -4996,7 +4989,7 @@ fts_get_rows_count(
|
|||
|
||||
trx->error_state = DB_SUCCESS;
|
||||
} else {
|
||||
ib::error() << "(" << ut_strerr(error)
|
||||
ib::error() << "(" << error
|
||||
<< ") while reading FTS table.";
|
||||
|
||||
break; /* Exit the loop. */
|
||||
|
@ -7061,7 +7054,7 @@ fts_drop_orphaned_tables(void)
|
|||
for (;;) {
|
||||
error = fts_eval_sql(trx, graph);
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
fts_check_and_drop_orphaned_tables(trx, tables);
|
||||
break; /* Exit the loop. */
|
||||
} else {
|
||||
|
@ -7075,7 +7068,7 @@ fts_drop_orphaned_tables(void)
|
|||
|
||||
trx->error_state = DB_SUCCESS;
|
||||
} else {
|
||||
ib::error() << "(" << ut_strerr(error)
|
||||
ib::error() << "(" << error
|
||||
<< ") while reading SYS_TABLES.";
|
||||
|
||||
break; /* Exit the loop. */
|
||||
|
|
|
@ -525,7 +525,7 @@ fts_index_fetch_nodes(
|
|||
for (;;) {
|
||||
error = fts_eval_sql(trx, *graph);
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
fts_sql_commit(trx);
|
||||
|
||||
break; /* Exit the loop. */
|
||||
|
@ -538,7 +538,7 @@ fts_index_fetch_nodes(
|
|||
|
||||
trx->error_state = DB_SUCCESS;
|
||||
} else {
|
||||
ib::error() << "(" << ut_strerr(error)
|
||||
ib::error() << "(" << error
|
||||
<< ") while reading FTS index.";
|
||||
|
||||
break; /* Exit the loop. */
|
||||
|
@ -860,7 +860,7 @@ fts_index_fetch_words(
|
|||
error = fts_eval_sql(optim->trx, graph);
|
||||
}
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
//FIXME fts_sql_commit(optim->trx);
|
||||
break;
|
||||
} else {
|
||||
|
@ -877,7 +877,7 @@ fts_index_fetch_words(
|
|||
|
||||
optim->trx->error_state = DB_SUCCESS;
|
||||
} else {
|
||||
ib::error() << "(" << ut_strerr(error)
|
||||
ib::error() << "(" << error
|
||||
<< ") while reading document.";
|
||||
|
||||
break; /* Exit the loop. */
|
||||
|
@ -1356,12 +1356,6 @@ fts_optimize_word(
|
|||
enc.src_last_doc_id = 0;
|
||||
enc.src_ilist_ptr = NULL;
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
word->text.f_str[word->text.f_len] = 0;
|
||||
ib::info() << "FTS_OPTIMIZE: optimize \"" << word->text.f_str
|
||||
<< "\"";
|
||||
}
|
||||
|
||||
while (i < size) {
|
||||
ulint copied;
|
||||
fts_node_t* src_node;
|
||||
|
@ -1439,11 +1433,6 @@ fts_optimize_write_word(
|
|||
|
||||
ut_ad(fts_table->charset);
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
ib::info() << "FTS_OPTIMIZE: processed \"" << word->f_str
|
||||
<< "\"";
|
||||
}
|
||||
|
||||
pars_info_bind_varchar_literal(
|
||||
info, "word", word->f_str, word->f_len);
|
||||
|
||||
|
@ -1461,8 +1450,8 @@ fts_optimize_write_word(
|
|||
|
||||
error = fts_eval_sql(trx, graph);
|
||||
|
||||
if (error != DB_SUCCESS) {
|
||||
ib::error() << "(" << ut_strerr(error) << ") during optimize,"
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "(" << error << ") during optimize,"
|
||||
" when deleting a word from the FTS index.";
|
||||
}
|
||||
|
||||
|
@ -1485,8 +1474,8 @@ fts_optimize_write_word(
|
|||
error = fts_write_node(
|
||||
trx, &graph, fts_table, word, node);
|
||||
|
||||
if (error != DB_SUCCESS) {
|
||||
ib::error() << "(" << ut_strerr(error) << ")"
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "(" << error << ")"
|
||||
" during optimize, while adding a"
|
||||
" word to the FTS index.";
|
||||
}
|
||||
|
@ -1875,9 +1864,8 @@ fts_optimize_index_completed(
|
|||
error = fts_config_set_index_value(
|
||||
optim->trx, index, FTS_LAST_OPTIMIZED_WORD, &word);
|
||||
|
||||
if (error != DB_SUCCESS) {
|
||||
|
||||
ib::error() << "(" << ut_strerr(error) << ") while updating"
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "(" << error << ") while updating"
|
||||
" last optimized word!";
|
||||
}
|
||||
|
||||
|
@ -2429,7 +2417,7 @@ fts_optimize_table(
|
|||
fts_optimize_t* optim = NULL;
|
||||
fts_t* fts = table->fts;
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "FTS start optimize " << table->name;
|
||||
}
|
||||
|
||||
|
@ -2481,7 +2469,7 @@ fts_optimize_table(
|
|||
if (error == DB_SUCCESS
|
||||
&& optim->n_completed == ib_vector_size(fts->indexes)) {
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "FTS_OPTIMIZE: Completed"
|
||||
" Optimize, cleanup DELETED table";
|
||||
}
|
||||
|
@ -2504,7 +2492,7 @@ fts_optimize_table(
|
|||
|
||||
fts_optimize_free(optim);
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "FTS end optimize " << table->name;
|
||||
}
|
||||
|
||||
|
@ -2689,7 +2677,7 @@ static bool fts_optimize_del_table(const dict_table_t* table)
|
|||
slot = static_cast<fts_slot_t*>(ib_vector_get(fts_slots, i));
|
||||
|
||||
if (slot->table == table) {
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "FTS Optimize Removing table "
|
||||
<< table->name;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2007, 2018, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, 2019, MariaDB Corporation.
|
||||
Copyright (c) 2017, 2020, 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
|
||||
|
@ -2447,9 +2447,8 @@ fts_query_match_document(
|
|||
get_doc, match->doc_id, NULL, FTS_FETCH_DOC_BY_ID_EQUAL,
|
||||
fts_query_fetch_document, &phrase);
|
||||
|
||||
if (error != DB_SUCCESS) {
|
||||
ib::error() << "(" << ut_strerr(error)
|
||||
<< ") matching document.";
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "(" << error << ") matching document.";
|
||||
} else {
|
||||
*found = phrase.found;
|
||||
}
|
||||
|
@ -2495,8 +2494,8 @@ fts_query_is_in_proximity_range(
|
|||
&get_doc, match[0]->doc_id, NULL, FTS_FETCH_DOC_BY_ID_EQUAL,
|
||||
fts_query_fetch_document, &phrase);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
ib::error() << "(" << ut_strerr(err) << ") in verification"
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::error() << "(" << err << ") in verification"
|
||||
" phase of proximity search";
|
||||
}
|
||||
|
||||
|
@ -3501,14 +3500,6 @@ fts_query_calculate_idf(
|
|||
/ (double) word_freq->doc_count);
|
||||
}
|
||||
}
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
ib::info() << "'" << word_freq->word.f_str << "' -> "
|
||||
<< query->total_docs << "/"
|
||||
<< word_freq->doc_count << " "
|
||||
<< std::setw(6) << std::setprecision(5)
|
||||
<< word_freq->idf;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3884,7 +3875,7 @@ fts_query_parse(
|
|||
} else {
|
||||
query->root = state.root;
|
||||
|
||||
if (fts_enable_diag_print && query->root != NULL) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print) && query->root) {
|
||||
fts_ast_node_print(query->root);
|
||||
}
|
||||
}
|
||||
|
@ -4108,7 +4099,7 @@ fts_query(
|
|||
|
||||
ut_free(lc_query_str);
|
||||
|
||||
if (fts_enable_diag_print && (*result)) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print) && (*result)) {
|
||||
ulint diff_time = ut_time_ms() - start_time_ms;
|
||||
|
||||
ib::info() << "FTS Search Processing time: "
|
||||
|
@ -4264,7 +4255,7 @@ fts_expand_query(
|
|||
|
||||
query->total_size += SIZEOF_RBT_CREATE;
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
fts_print_doc_id(query);
|
||||
}
|
||||
|
||||
|
|
|
@ -8128,8 +8128,7 @@ ha_innobase::write_row(
|
|||
if (high_level_read_only) {
|
||||
ib_senderrf(ha_thd(), IB_LOG_LEVEL_WARN, ER_READ_ONLY_MODE);
|
||||
DBUG_RETURN(HA_ERR_TABLE_READONLY);
|
||||
} else if (m_prebuilt->trx != trx) {
|
||||
|
||||
} else if (UNIV_UNLIKELY(m_prebuilt->trx != trx)) {
|
||||
ib::error() << "The transaction object for the table handle is"
|
||||
" at " << static_cast<const void*>(m_prebuilt->trx)
|
||||
<< ", but for the current thread it is at "
|
||||
|
@ -9989,7 +9988,7 @@ ha_innobase::ft_init_ext(
|
|||
const CHARSET_INFO* char_set = key->charset();
|
||||
const char* query = key->ptr();
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
{
|
||||
ib::info out;
|
||||
out << "keynr=" << keynr << ", '";
|
||||
|
|
|
@ -8826,7 +8826,7 @@ foreign_fail:
|
|||
trx_start_for_ddl(trx, TRX_DICT_OP_TABLE);
|
||||
dberr_t error = row_merge_drop_table(trx, ctx->old_table);
|
||||
|
||||
if (error != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "Inplace alter table " << ctx->old_table->name
|
||||
<< " dropping copy of the old table failed error "
|
||||
<< error
|
||||
|
|
|
@ -3474,7 +3474,7 @@ i_s_fts_index_table_fill_selected(
|
|||
for (;;) {
|
||||
error = fts_eval_sql(trx, graph);
|
||||
|
||||
if (error == DB_SUCCESS) {
|
||||
if (UNIV_LIKELY(error == DB_SUCCESS)) {
|
||||
fts_sql_commit(trx);
|
||||
|
||||
break;
|
||||
|
@ -3488,7 +3488,7 @@ i_s_fts_index_table_fill_selected(
|
|||
trx->error_state = DB_SUCCESS;
|
||||
} else {
|
||||
ib::error() << "Error occurred while reading"
|
||||
" FTS index: " << ut_strerr(error);
|
||||
" FTS index: " << error;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -8086,9 +8086,7 @@ i_s_dict_fill_sys_tablespaces(
|
|||
break;
|
||||
|
||||
default:
|
||||
ib::error()
|
||||
<< "File '" << filepath << "' "
|
||||
<< ut_strerr(err);
|
||||
ib::error() << "File '" << filepath << "' " << err;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -458,7 +458,7 @@ btr_pcur_open_low(
|
|||
index, level, tuple, mode, latch_mode,
|
||||
btr_cursor, 0, file, line, mtr, autoinc);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::warn() << " Error code: " << err
|
||||
<< " btr_pcur_open_low "
|
||||
<< " level: " << level
|
||||
|
|
|
@ -571,6 +571,7 @@ lock_has_to_wait(
|
|||
locks are record locks */
|
||||
/*********************************************************************//**
|
||||
Reports that a transaction id is insensible, i.e., in the future. */
|
||||
ATTRIBUTE_COLD
|
||||
void
|
||||
lock_report_trx_id_insanity(
|
||||
/*========================*/
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2019, MariaDB Corporation.
|
||||
Copyright (c) 2019, 2020, 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
|
||||
|
@ -389,48 +389,41 @@ operator<<(
|
|||
It contains a std::ostringstream object. The main purpose of this class is
|
||||
to forward operator<< to the underlying std::ostringstream object. Do not
|
||||
use this class directly, instead use one of the derived classes. */
|
||||
class logger {
|
||||
public:
|
||||
template<typename T>
|
||||
ATTRIBUTE_COLD
|
||||
logger& operator<<(const T& rhs)
|
||||
{
|
||||
m_oss << rhs;
|
||||
return(*this);
|
||||
}
|
||||
|
||||
/** Write the given buffer to the internal string stream object.
|
||||
@param[in] buf the buffer whose contents will be logged.
|
||||
@param[in] count the length of the buffer buf.
|
||||
@return the output stream into which buffer was written. */
|
||||
ATTRIBUTE_COLD
|
||||
std::ostream&
|
||||
write(
|
||||
const char* buf,
|
||||
std::streamsize count)
|
||||
{
|
||||
return(m_oss.write(buf, count));
|
||||
}
|
||||
|
||||
/** Write the given buffer to the internal string stream object.
|
||||
@param[in] buf the buffer whose contents will be logged.
|
||||
@param[in] count the length of the buffer buf.
|
||||
@return the output stream into which buffer was written. */
|
||||
ATTRIBUTE_COLD
|
||||
std::ostream&
|
||||
write(
|
||||
const byte* buf,
|
||||
std::streamsize count)
|
||||
{
|
||||
return(m_oss.write(reinterpret_cast<const char*>(buf), count));
|
||||
}
|
||||
|
||||
std::ostringstream m_oss;
|
||||
class logger
|
||||
{
|
||||
protected:
|
||||
/* This class must not be used directly, hence making the default
|
||||
constructor protected. */
|
||||
ATTRIBUTE_COLD
|
||||
logger() {}
|
||||
/* This class must not be used directly */
|
||||
ATTRIBUTE_COLD ATTRIBUTE_NOINLINE logger() {}
|
||||
public:
|
||||
template<typename T> ATTRIBUTE_COLD ATTRIBUTE_NOINLINE
|
||||
logger& operator<<(const T& rhs)
|
||||
{
|
||||
m_oss << rhs;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/** Handle a fixed character string in the same way as a pointer to
|
||||
an unknown-length character string, to reduce object code bloat. */
|
||||
template<size_t N> logger& operator<<(const char (&rhs)[N])
|
||||
{ return *this << static_cast<const char*>(rhs); }
|
||||
|
||||
/** Output an error code name */
|
||||
ATTRIBUTE_COLD logger& operator<<(dberr_t err);
|
||||
|
||||
/** Append a string.
|
||||
@param buf string buffer
|
||||
@param size buffer size
|
||||
@return the output stream */
|
||||
ATTRIBUTE_COLD __attribute__((noinline))
|
||||
std::ostream &write(const char *buf, std::streamsize size)
|
||||
{
|
||||
return m_oss.write(buf, size);
|
||||
}
|
||||
|
||||
std::ostream &write(const byte *buf, std::streamsize size)
|
||||
{ return write(reinterpret_cast<const char*>(buf), size); }
|
||||
|
||||
std::ostringstream m_oss;
|
||||
};
|
||||
|
||||
/** The class info is used to emit informational log messages. It is to be
|
||||
|
|
|
@ -320,6 +320,7 @@ static FILE* lock_latest_err_file;
|
|||
|
||||
/*********************************************************************//**
|
||||
Reports that a transaction id is insensible, i.e., in the future. */
|
||||
ATTRIBUTE_COLD
|
||||
void
|
||||
lock_report_trx_id_insanity(
|
||||
/*========================*/
|
||||
|
@ -330,7 +331,7 @@ lock_report_trx_id_insanity(
|
|||
trx_id_t max_trx_id) /*!< in: trx_sys_get_max_trx_id() */
|
||||
{
|
||||
ib::error()
|
||||
<< "Transaction id " << trx_id
|
||||
<< "Transaction id " << ib::hex(trx_id)
|
||||
<< " associated with record" << rec_offsets_print(rec, offsets)
|
||||
<< " in index " << index->name
|
||||
<< " of table " << index->table->name
|
||||
|
@ -359,7 +360,7 @@ lock_check_trx_id_sanity(
|
|||
trx_id_t max_trx_id = trx_sys_get_max_trx_id();
|
||||
bool is_ok = trx_id < max_trx_id;
|
||||
|
||||
if (!is_ok) {
|
||||
if (UNIV_UNLIKELY(!is_ok)) {
|
||||
lock_report_trx_id_insanity(
|
||||
trx_id, rec, index, offsets, max_trx_id);
|
||||
}
|
||||
|
@ -756,7 +757,7 @@ lock_rec_has_to_wait(
|
|||
wsrep_thd_is_BF(lock2->trx->mysql_thd, TRUE)) {
|
||||
mtr_t mtr;
|
||||
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() <<
|
||||
"BF-BF lock conflict, locking: " << for_locking;
|
||||
lock_rec_print(stderr, lock2, mtr);
|
||||
|
@ -770,7 +771,7 @@ lock_rec_has_to_wait(
|
|||
lock2->trx->mysql_thd) &&
|
||||
(type_mode & LOCK_MODE_MASK) == LOCK_X &&
|
||||
(lock2->type_mode & LOCK_MODE_MASK) == LOCK_X) {
|
||||
if (for_locking || wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(for_locking || wsrep_debug)) {
|
||||
/* exclusive lock conflicts are not
|
||||
accepted */
|
||||
ib::info() <<
|
||||
|
@ -797,7 +798,7 @@ lock_rec_has_to_wait(
|
|||
lock2->index->n_user_defined_cols
|
||||
operation is on uniq index
|
||||
*/
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() <<
|
||||
"BF conflict, modes: "
|
||||
<< type_mode << ":" << lock2->type_mode
|
||||
|
@ -1111,7 +1112,7 @@ wsrep_kill_victim(
|
|||
trx->mysql_thd, lock->trx->mysql_thd))) {
|
||||
|
||||
if (lock->trx->lock.que_state == TRX_QUE_LOCK_WAIT) {
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() << "WSREP: BF victim waiting\n";
|
||||
}
|
||||
/* cannot release lock, until our lock
|
||||
|
@ -1344,13 +1345,14 @@ lock_number_of_tables_locked(
|
|||
/*============== RECORD LOCK CREATION AND QUEUE MANAGEMENT =============*/
|
||||
|
||||
#ifdef WITH_WSREP
|
||||
ATTRIBUTE_COLD
|
||||
static
|
||||
void
|
||||
wsrep_print_wait_locks(
|
||||
/*===================*/
|
||||
lock_t* c_lock) /* conflicting lock to print */
|
||||
{
|
||||
if (wsrep_debug && c_lock->trx->lock.wait_lock != c_lock) {
|
||||
if (c_lock->trx->lock.wait_lock != c_lock) {
|
||||
mtr_t mtr;
|
||||
ib::info() << "WSREP: c_lock != wait lock";
|
||||
ib::info() << " SQL: "
|
||||
|
@ -1502,7 +1504,7 @@ lock_rec_create_low(
|
|||
|
||||
c_lock->trx->lock.was_chosen_as_deadlock_victim = TRUE;
|
||||
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
wsrep_print_wait_locks(c_lock);
|
||||
}
|
||||
|
||||
|
@ -1529,7 +1531,7 @@ lock_rec_create_low(
|
|||
|
||||
trx_mutex_exit(c_lock->trx);
|
||||
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() << "WSREP: c_lock canceled "
|
||||
<< ib::hex(c_lock->trx->id)
|
||||
<< " SQL: "
|
||||
|
@ -1794,7 +1796,7 @@ lock_rec_enqueue_waiting(
|
|||
transaction as a victim, it is possible that we
|
||||
already have the lock now granted! */
|
||||
#ifdef WITH_WSREP
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() << "WSREP: BF thread got lock granted early, ID " << ib::hex(trx->id)
|
||||
<< " query: " << wsrep_thd_query(trx->mysql_thd);
|
||||
}
|
||||
|
@ -2213,7 +2215,7 @@ lock_rec_has_to_wait_in_queue(
|
|||
#ifdef WITH_WSREP
|
||||
if (wsrep_thd_is_BF(wait_lock->trx->mysql_thd, FALSE) &&
|
||||
wsrep_thd_is_BF(lock->trx->mysql_thd, TRUE)) {
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
mtr_t mtr;
|
||||
ib::info() << "WSREP: waiting BF trx: " << ib::hex(wait_lock->trx->id)
|
||||
<< " query: " << wsrep_thd_query(wait_lock->trx->mysql_thd);
|
||||
|
@ -3657,7 +3659,7 @@ lock_table_create(
|
|||
if (wsrep_thd_is_BF(trx->mysql_thd, FALSE)) {
|
||||
ut_list_insert(table->locks, c_lock, lock,
|
||||
TableLockGetNode());
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() << "table lock BF conflict for "
|
||||
<< ib::hex(c_lock->trx->id)
|
||||
<< " SQL: "
|
||||
|
@ -3673,7 +3675,7 @@ lock_table_create(
|
|||
if (c_lock->trx->lock.que_state == TRX_QUE_LOCK_WAIT) {
|
||||
c_lock->trx->lock.was_chosen_as_deadlock_victim = TRUE;
|
||||
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
wsrep_print_wait_locks(c_lock);
|
||||
}
|
||||
|
||||
|
@ -3684,7 +3686,7 @@ lock_table_create(
|
|||
c_lock->trx->lock.wait_lock);
|
||||
trx_mutex_enter(trx);
|
||||
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() << "WSREP: c_lock canceled "
|
||||
<< ib::hex(c_lock->trx->id)
|
||||
<< " SQL: "
|
||||
|
@ -3957,9 +3959,9 @@ lock_table_other_has_incompatible(
|
|||
|
||||
#ifdef WITH_WSREP
|
||||
if (lock->trx->is_wsrep()) {
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() << "WSREP: table lock abort for table:"
|
||||
<< table->name.m_name;
|
||||
<< table->name;
|
||||
ib::info() << " SQL: "
|
||||
<< wsrep_thd_query(lock->trx->mysql_thd);
|
||||
}
|
||||
|
|
|
@ -589,7 +589,7 @@ fil_name_parse(
|
|||
ut_ad(0); // the caller checked this
|
||||
/* fall through */
|
||||
case MLOG_FILE_NAME:
|
||||
if (corrupt) {
|
||||
if (UNIV_UNLIKELY(corrupt)) {
|
||||
ib::error() << "MLOG_FILE_NAME incorrect:" << ptr;
|
||||
recv_sys->found_corrupt_log = true;
|
||||
break;
|
||||
|
@ -599,7 +599,7 @@ fil_name_parse(
|
|||
reinterpret_cast<char*>(ptr), len, space_id, false);
|
||||
break;
|
||||
case MLOG_FILE_DELETE:
|
||||
if (corrupt) {
|
||||
if (UNIV_UNLIKELY(corrupt)) {
|
||||
ib::error() << "MLOG_FILE_DELETE incorrect:" << ptr;
|
||||
recv_sys->found_corrupt_log = true;
|
||||
break;
|
||||
|
@ -627,7 +627,7 @@ fil_name_parse(
|
|||
}
|
||||
break;
|
||||
case MLOG_FILE_RENAME2:
|
||||
if (corrupt) {
|
||||
if (UNIV_UNLIKELY(corrupt)) {
|
||||
ib::error() << "MLOG_FILE_RENAME2 incorrect:" << ptr;
|
||||
recv_sys->found_corrupt_log = true;
|
||||
}
|
||||
|
@ -668,7 +668,7 @@ fil_name_parse(
|
|||
}
|
||||
}
|
||||
|
||||
if (corrupt) {
|
||||
if (UNIV_UNLIKELY(corrupt)) {
|
||||
ib::error() << "MLOG_FILE_RENAME2 new_name incorrect:" << ptr
|
||||
<< " new_name: " << new_name;
|
||||
recv_sys->found_corrupt_log = true;
|
||||
|
@ -2697,6 +2697,7 @@ recv_calc_lsn_on_data_add(
|
|||
@param[in] space tablespace ID (could be garbage)
|
||||
@param[in] page_no page number (could be garbage)
|
||||
@return whether processing should continue */
|
||||
ATTRIBUTE_COLD
|
||||
static
|
||||
bool
|
||||
recv_report_corrupt_log(
|
||||
|
@ -2713,7 +2714,8 @@ recv_report_corrupt_log(
|
|||
ib::info() << "Log record type " << type << ", page " << space << ":"
|
||||
<< page_no << ". Log parsing proceeded successfully up to "
|
||||
<< recv_sys->recovered_lsn << ". Previous log record type "
|
||||
<< recv_previous_parsed_rec_type << ", is multi "
|
||||
<< recv_previous_parsed_rec_type
|
||||
<< ", is multi "
|
||||
<< recv_previous_parsed_rec_is_multi << " Recv offset "
|
||||
<< ptr_offset << ", prev "
|
||||
<< recv_previous_parsed_rec_offset;
|
||||
|
@ -2853,12 +2855,12 @@ loop:
|
|||
len = recv_parse_log_rec(&type, ptr, end_ptr, &space,
|
||||
&page_no, apply, &body);
|
||||
|
||||
if (recv_sys->found_corrupt_log) {
|
||||
if (UNIV_UNLIKELY(recv_sys->found_corrupt_log)) {
|
||||
recv_report_corrupt_log(ptr, type, space, page_no);
|
||||
return(true);
|
||||
}
|
||||
|
||||
if (recv_sys->found_corrupt_fs) {
|
||||
if (UNIV_UNLIKELY(recv_sys->found_corrupt_fs)) {
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
@ -2982,7 +2984,7 @@ loop:
|
|||
&type, ptr, end_ptr, &space, &page_no,
|
||||
false, &body);
|
||||
|
||||
if (recv_sys->found_corrupt_log) {
|
||||
if (UNIV_UNLIKELY(recv_sys->found_corrupt_log)) {
|
||||
corrupted_log:
|
||||
recv_report_corrupt_log(
|
||||
ptr, type, space, page_no);
|
||||
|
@ -3075,13 +3077,13 @@ corrupted_log:
|
|||
&type, ptr, end_ptr, &space, &page_no,
|
||||
apply, &body);
|
||||
|
||||
if (recv_sys->found_corrupt_log
|
||||
if (UNIV_UNLIKELY(recv_sys->found_corrupt_log)
|
||||
&& !recv_report_corrupt_log(
|
||||
ptr, type, space, page_no)) {
|
||||
return(true);
|
||||
}
|
||||
|
||||
if (recv_sys->found_corrupt_fs) {
|
||||
if (UNIV_UNLIKELY(recv_sys->found_corrupt_fs)) {
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
@ -3597,7 +3599,7 @@ recv_validate_tablespace(bool rescan, bool& missing_tablespace)
|
|||
for (recv_spaces_t::iterator i = recv_spaces.begin();
|
||||
i != recv_spaces.end(); i++) {
|
||||
|
||||
if (i->second.status != file_name_t::MISSING) {
|
||||
if (UNIV_LIKELY(i->second.status != file_name_t::MISSING)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -2438,7 +2438,10 @@ page_validate(
|
|||
if (UNIV_UNLIKELY((ibool) !!page_is_comp(page)
|
||||
!= dict_table_is_comp(index->table))) {
|
||||
ib::error() << "'compact format' flag mismatch";
|
||||
goto func_exit2;
|
||||
func_exit2:
|
||||
ib::error() << "Apparent corruption in space "
|
||||
<< page_get_space_id(page) << " page "
|
||||
<< page_get_page_no(page) << " index " << index->name;
|
||||
}
|
||||
if (page_is_comp(page)) {
|
||||
if (UNIV_UNLIKELY(!page_simple_validate_new(page))) {
|
||||
|
@ -2480,15 +2483,14 @@ page_validate(
|
|||
|
||||
n_slots = page_dir_get_n_slots(page);
|
||||
|
||||
if (UNIV_UNLIKELY(!(page_header_get_ptr(page, PAGE_HEAP_TOP)
|
||||
<= page_dir_get_nth_slot(page, n_slots - 1)))) {
|
||||
const void* top = page_header_get_ptr(page, PAGE_HEAP_TOP);
|
||||
const void* last_slot = page_dir_get_nth_slot(page, n_slots - 1);
|
||||
|
||||
if (UNIV_UNLIKELY(top > last_slot)) {
|
||||
ib::warn() << "Record heap and dir overlap on space "
|
||||
<< page_get_space_id(page) << " page "
|
||||
<< page_get_page_no(page) << " index " << index->name
|
||||
<< ", " << page_header_get_ptr(page, PAGE_HEAP_TOP)
|
||||
<< ", " << page_dir_get_nth_slot(page, n_slots - 1);
|
||||
|
||||
<< ", " << top << ", " << last_slot;
|
||||
goto func_exit;
|
||||
}
|
||||
|
||||
|
@ -2747,10 +2749,7 @@ func_exit:
|
|||
mem_heap_free(heap);
|
||||
|
||||
if (UNIV_UNLIKELY(ret == FALSE)) {
|
||||
func_exit2:
|
||||
ib::error() << "Apparent corruption in space "
|
||||
<< page_get_space_id(page) << " page "
|
||||
<< page_get_page_no(page) << " index " << index->name;
|
||||
goto func_exit2;
|
||||
}
|
||||
|
||||
return(ret);
|
||||
|
|
|
@ -864,7 +864,8 @@ loop:
|
|||
|
||||
num_doc_processed++;
|
||||
|
||||
if (fts_enable_diag_print && num_doc_processed % 10000 == 1) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)
|
||||
&& num_doc_processed % 10000 == 1) {
|
||||
ib::info() << "Number of documents processed: "
|
||||
<< num_doc_processed;
|
||||
#ifdef FTS_INTERNAL_DIAG_PRINT
|
||||
|
@ -1009,7 +1010,7 @@ exit:
|
|||
}
|
||||
}
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
DEBUG_FTS_SORT_PRINT(" InnoDB_FTS: start merge sort\n");
|
||||
}
|
||||
|
||||
|
@ -1040,7 +1041,7 @@ exit:
|
|||
}
|
||||
|
||||
func_exit:
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
DEBUG_FTS_SORT_PRINT(" InnoDB_FTS: complete merge sort\n");
|
||||
}
|
||||
|
||||
|
@ -1215,11 +1216,9 @@ row_merge_write_fts_word(
|
|||
|
||||
error = row_merge_write_fts_node(ins_ctx, &word->text, fts_node);
|
||||
|
||||
if (error != DB_SUCCESS) {
|
||||
ib::error() << "Failed to write word "
|
||||
<< word->text.f_str << " to FTS auxiliary"
|
||||
" index table, error (" << ut_strerr(error)
|
||||
<< ")";
|
||||
if (UNIV_UNLIKELY(error != DB_SUCCESS)) {
|
||||
ib::error() << "Failed to write word to FTS auxiliary"
|
||||
" index table, error " << error;
|
||||
ret = error;
|
||||
}
|
||||
|
||||
|
@ -1633,7 +1632,7 @@ row_fts_merge_insert(
|
|||
count_diag += (int) psort_info[i].merge_file[id]->n_rec;
|
||||
}
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "InnoDB_FTS: to insert " << count_diag
|
||||
<< " records";
|
||||
}
|
||||
|
@ -1801,7 +1800,7 @@ exit:
|
|||
|
||||
mem_heap_free(heap);
|
||||
|
||||
if (fts_enable_diag_print) {
|
||||
if (UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "InnoDB_FTS: inserted " << count << " records";
|
||||
}
|
||||
|
||||
|
|
|
@ -1885,7 +1885,7 @@ PageConverter::update_index_page(
|
|||
|
||||
row_index_t* index = find_index(id);
|
||||
|
||||
if (index == 0) {
|
||||
if (UNIV_UNLIKELY(!index)) {
|
||||
ib::error() << "Page for tablespace " << m_space
|
||||
<< " is index page with id " << id
|
||||
<< " but that index is not found from"
|
||||
|
@ -2132,7 +2132,7 @@ row_import_discard_changes(
|
|||
|
||||
ib::info() << "Discarding tablespace of table "
|
||||
<< prebuilt->table->name
|
||||
<< ": " << ut_strerr(err);
|
||||
<< ": " << err;
|
||||
|
||||
if (trx->dict_operation_lock_mode != RW_X_LATCH) {
|
||||
ut_a(trx->dict_operation_lock_mode == 0);
|
||||
|
|
|
@ -4917,7 +4917,8 @@ wait_again:
|
|||
goto func_exit;
|
||||
}
|
||||
|
||||
if (indexes[i]->type & DICT_FTS && fts_enable_diag_print) {
|
||||
if (indexes[i]->type & DICT_FTS
|
||||
&& UNIV_UNLIKELY(fts_enable_diag_print)) {
|
||||
ib::info() << "Finished building full-text index "
|
||||
<< indexes[i]->name;
|
||||
}
|
||||
|
|
|
@ -782,8 +782,7 @@ handle_new_error:
|
|||
" foreign constraints and try again";
|
||||
goto rollback_to_savept;
|
||||
default:
|
||||
ib::fatal() << "Unknown error code " << err << ": "
|
||||
<< ut_strerr(err);
|
||||
ib::fatal() << "Unknown error " << err;
|
||||
}
|
||||
|
||||
if (trx->error_state != DB_SUCCESS) {
|
||||
|
@ -3161,10 +3160,10 @@ row_drop_ancillary_fts_tables(
|
|||
|
||||
dberr_t err = fts_drop_tables(trx, table);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::error() << " Unable to remove ancillary FTS"
|
||||
" tables for table "
|
||||
<< table->name << " : " << ut_strerr(err);
|
||||
<< table->name << " : " << err;
|
||||
|
||||
return(err);
|
||||
}
|
||||
|
@ -4009,10 +4008,10 @@ loop:
|
|||
table_name, trx, SQLCOM_DROP_DB);
|
||||
trx_commit_for_mysql(trx);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::error() << "DROP DATABASE "
|
||||
<< ut_get_name(trx, name) << " failed"
|
||||
" with error (" << ut_strerr(err) << ") for"
|
||||
" with error (" << err << ") for"
|
||||
" table " << ut_get_name(trx, table_name);
|
||||
ut_free(table_name);
|
||||
break;
|
||||
|
|
|
@ -358,15 +358,8 @@ row_undo_step(
|
|||
|
||||
trx->error_state = err;
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
/* SQL error detected */
|
||||
|
||||
if (err == DB_OUT_OF_FILE_SPACE) {
|
||||
ib::fatal() << "Out of tablespace during rollback."
|
||||
" Consider increasing your tablespace.";
|
||||
}
|
||||
|
||||
ib::fatal() << "Error (" << ut_strerr(err) << ") in rollback.";
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::fatal() << "Error (" << err << ") in rollback.";
|
||||
}
|
||||
|
||||
return(thr);
|
||||
|
|
|
@ -2472,7 +2472,7 @@ row_upd_sec_index_entry(
|
|||
err = DB_SUCCESS;
|
||||
break;
|
||||
case DB_LOCK_WAIT:
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::warn() << "WSREP: sec index FK lock wait"
|
||||
<< " index " << index->name
|
||||
<< " table " << index->table->name
|
||||
|
@ -2480,7 +2480,7 @@ row_upd_sec_index_entry(
|
|||
}
|
||||
break;
|
||||
case DB_DEADLOCK:
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::warn() << "WSREP: sec index FK check fail for deadlock"
|
||||
<< " index " << index->name
|
||||
<< " table " << index->table->name
|
||||
|
@ -2488,7 +2488,7 @@ row_upd_sec_index_entry(
|
|||
}
|
||||
break;
|
||||
default:
|
||||
ib::error() << "WSREP: referenced FK check fail: " << ut_strerr(err)
|
||||
ib::error() << "WSREP: referenced FK check fail: " << err
|
||||
<< " index " << index->name
|
||||
<< " table " << index->table->name
|
||||
<< " query " << wsrep_thd_query(trx->mysql_thd);
|
||||
|
@ -2787,14 +2787,14 @@ check_fk:
|
|||
err = DB_SUCCESS;
|
||||
break;
|
||||
case DB_DEADLOCK:
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::warn() << "WSREP: sec index FK check fail for deadlock"
|
||||
<< " index " << index->name
|
||||
<< " table " << index->table->name;
|
||||
}
|
||||
goto err_exit;
|
||||
default:
|
||||
ib::error() << "WSREP: referenced FK check fail: " << ut_strerr(err)
|
||||
ib::error() << "WSREP: referenced FK check fail: " << err
|
||||
<< " index " << index->name
|
||||
<< " table " << index->table->name;
|
||||
goto err_exit;
|
||||
|
@ -3013,14 +3013,14 @@ row_upd_del_mark_clust_rec(
|
|||
err = DB_SUCCESS;
|
||||
break;
|
||||
case DB_DEADLOCK:
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::warn() << "WSREP: sec index FK check fail for deadlock"
|
||||
<< " index " << index->name
|
||||
<< " table " << index->table->name;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ib::error() << "WSREP: referenced FK check fail: " << ut_strerr(err)
|
||||
ib::error() << "WSREP: referenced FK check fail: " << err
|
||||
<< " index " << index->name
|
||||
<< " table " << index->table->name;
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ row_vers_impl_x_locked_low(
|
|||
if (trx == 0) {
|
||||
/* The transaction that modified or inserted clust_rec is no
|
||||
longer active, or it is corrupt: no implicit lock on rec */
|
||||
if (corrupt) {
|
||||
if (UNIV_UNLIKELY(corrupt)) {
|
||||
lock_report_trx_id_insanity(
|
||||
trx_id, clust_rec, clust_index, clust_offsets,
|
||||
trx_sys_get_max_trx_id());
|
||||
|
|
|
@ -123,7 +123,7 @@ srv_conc_enter_innodb_with_atomics(
|
|||
ulint sleep_in_us;
|
||||
#ifdef WITH_WSREP
|
||||
if (trx->is_wsrep() && wsrep_trx_is_aborting(trx->mysql_thd)) {
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() <<
|
||||
"srv_conc_enter due to MUST_ABORT";
|
||||
}
|
||||
|
@ -324,14 +324,14 @@ wsrep_srv_conc_cancel_wait(
|
|||
srv_conc_enter_innodb_with_atomics(). No need to cancel here,
|
||||
thr will wake up after os_sleep and let to enter innodb
|
||||
*/
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() << "WSREP: conc slot cancel, no atomics";
|
||||
}
|
||||
#else
|
||||
// JAN: TODO: MySQL 5.7
|
||||
//os_fast_mutex_lock(&srv_conc_mutex);
|
||||
if (trx->wsrep_event) {
|
||||
if (wsrep_debug) {
|
||||
if (UNIV_UNLIKELY(wsrep_debug)) {
|
||||
ib::info() << "WSREP: conc slot cancel";
|
||||
}
|
||||
os_event_set(trx->wsrep_event);
|
||||
|
|
|
@ -1329,7 +1329,7 @@ srv_init_abort_low(
|
|||
#ifdef UNIV_DEBUG
|
||||
" at " << innobase_basename(file) << "[" << line << "]"
|
||||
#endif /* UNIV_DEBUG */
|
||||
" with error " << ut_strerr(err) << ". You may need"
|
||||
" with error " << err << ". You may need"
|
||||
" to delete the ibdata1 file before trying to start"
|
||||
" up again.";
|
||||
} else {
|
||||
|
@ -1337,7 +1337,7 @@ srv_init_abort_low(
|
|||
#ifdef UNIV_DEBUG
|
||||
" at " << innobase_basename(file) << "[" << line << "]"
|
||||
#endif /* UNIV_DEBUG */
|
||||
" with error " << ut_strerr(err);
|
||||
" with error " << err;
|
||||
}
|
||||
|
||||
srv_shutdown_all_bg_threads();
|
||||
|
|
|
@ -698,12 +698,11 @@ namespace undo {
|
|||
|
||||
os_file_close(handle);
|
||||
|
||||
if (err != DB_SUCCESS) {
|
||||
|
||||
if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
|
||||
ib::info()
|
||||
<< "Unable to read '"
|
||||
<< log_file_name << "' : "
|
||||
<< ut_strerr(err);
|
||||
<< err;
|
||||
|
||||
os_file_delete(
|
||||
innodb_log_file_key, log_file_name);
|
||||
|
|
|
@ -1565,9 +1565,7 @@ trx_undo_update_rec_get_update(
|
|||
<< " fields " << BUG_REPORT_MSG
|
||||
<< ". Run also CHECK TABLE "
|
||||
<< index->table->name << "."
|
||||
" n_fields = " << n_fields << ", i = " << i
|
||||
<< ", ptr " << ptr;
|
||||
|
||||
" n_fields = " << n_fields << ", i = " << i;
|
||||
ut_ad(0);
|
||||
*upd = NULL;
|
||||
return(NULL);
|
||||
|
|
|
@ -478,9 +478,8 @@ trx_validate_state_before_free(trx_t* trx)
|
|||
ut_ad(!trx->mysql_n_tables_locked);
|
||||
ut_ad(!trx->internal);
|
||||
|
||||
if (trx->declared_to_be_inside_innodb) {
|
||||
|
||||
ib::error() << "Freeing a trx (" << trx << ", "
|
||||
if (UNIV_UNLIKELY(trx->declared_to_be_inside_innodb)) {
|
||||
ib::error() << "Freeing a trx ("
|
||||
<< trx_get_id_for_print(trx) << ") which is declared"
|
||||
" to be processing inside InnoDB";
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2017, 2019, MariaDB Corporation.
|
||||
Copyright (c) 2017, 2020, 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
|
||||
|
@ -614,6 +614,12 @@ ut_basename_noext(
|
|||
|
||||
namespace ib {
|
||||
|
||||
ATTRIBUTE_COLD logger& logger::operator<<(dberr_t err)
|
||||
{
|
||||
m_oss << ut_strerr(err);
|
||||
return *this;
|
||||
}
|
||||
|
||||
info::~info()
|
||||
{
|
||||
sql_print_information("InnoDB: %s", m_oss.str().c_str());
|
||||
|
|
Loading…
Reference in a new issue