summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extra/mariabackup/xtrabackup.cc2
-rw-r--r--storage/innobase/include/ut0ut.h8
-rw-r--r--storage/innobase/os/os0file.cc6
-rw-r--r--storage/innobase/ut/ut0ut.cc4
4 files changed, 16 insertions, 4 deletions
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc
index 040fbeb8f32..b1120ba29f7 100644
--- a/extra/mariabackup/xtrabackup.cc
+++ b/extra/mariabackup/xtrabackup.cc
@@ -5770,7 +5770,7 @@ static bool xtrabackup_prepare_func(char** argv)
error_cleanup:
xb_filters_free();
- return ok;
+ return ok && !ib::error::was_logged();
}
/**************************************************************************
diff --git a/storage/innobase/include/ut0ut.h b/storage/innobase/include/ut0ut.h
index 000d8b6b379..741687c07d7 100644
--- a/storage/innobase/include/ut0ut.h
+++ b/storage/innobase/include/ut0ut.h
@@ -464,6 +464,14 @@ class error : public logger {
public:
ATTRIBUTE_COLD
~error();
+ /** Indicates that error::~error() was invoked. Can be used to
+ determine if error messages were logged during innodb code execution.
+ @return true if there were error messages, false otherwise. */
+ static bool was_logged() { return logged; }
+
+private:
+ /** true if error::~error() was invoked, false otherwise */
+ static bool logged;
};
/** The class fatal is used to emit an error message and stop the server
diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc
index f7061388cb8..e468b842ce2 100644
--- a/storage/innobase/os/os0file.cc
+++ b/storage/innobase/os/os0file.cc
@@ -2238,14 +2238,14 @@ AIO::linux_create_io_ctx(
}
/* Have tried enough. Better call it a day. */
- ib::error()
+ ib::warn()
<< "io_setup() failed with EAGAIN after "
<< OS_AIO_IO_SETUP_RETRY_ATTEMPTS
<< " attempts.";
break;
case -ENOSYS:
- ib::error()
+ ib::warn()
<< "Linux Native AIO interface"
" is not supported on this platform. Please"
" check your OS documentation and install"
@@ -2254,7 +2254,7 @@ AIO::linux_create_io_ctx(
break;
default:
- ib::error()
+ ib::warn()
<< "Linux Native AIO setup"
<< " returned following error["
<< ret << "]";
diff --git a/storage/innobase/ut/ut0ut.cc b/storage/innobase/ut/ut0ut.cc
index 252f3a50ae1..b50735a391d 100644
--- a/storage/innobase/ut/ut0ut.cc
+++ b/storage/innobase/ut/ut0ut.cc
@@ -624,9 +624,13 @@ warn::~warn()
sql_print_warning("InnoDB: %s", m_oss.str().c_str());
}
+/** true if error::~error() was invoked, false otherwise */
+bool error::logged;
+
error::~error()
{
sql_print_error("InnoDB: %s", m_oss.str().c_str());
+ logged = true;
}
#ifdef _MSC_VER