Browse Source

MDEV-36182: Revert "MDEV-26674: Set innodb_use_native_aio=OFF

...when using io_uring on a potentially affected kernel"

Remove version check on the kernel as it now corresponds to
a working RHEL9 kernel and the problem was only there in
pre-release kernels that shouldn't have been used in production.

This reverts commit 1193a793c4.
pull/3983/head
Daniel Black 6 months ago
parent
commit
1055bc957e
  1. 41
      storage/innobase/handler/ha_innodb.cc

41
storage/innobase/handler/ha_innodb.cc

@ -149,11 +149,6 @@ void close_thread_tables(THD* thd);
#include "wsrep_sst.h"
#endif /* WITH_WSREP */
#ifdef HAVE_URING
/** The Linux kernel version if io_uring() is considered unsafe */
static const char *io_uring_may_be_unsafe;
#endif
#define INSIDE_HA_INNOBASE_CC
#define EQ_CURRENT_THD(thd) ((thd) == current_thd)
@ -4189,14 +4184,6 @@ static int innodb_init_params()
cases, we ignore the setting of innodb_use_native_aio. */
srv_use_native_aio = FALSE;
#endif
#ifdef HAVE_URING
if (srv_use_native_aio && io_uring_may_be_unsafe) {
sql_print_warning("innodb_use_native_aio may cause "
"hangs with this kernel %s; see "
"https://jira.mariadb.org/browse/MDEV-26674",
io_uring_may_be_unsafe);
}
#endif
#ifdef _WIN32
switch (srv_file_flush_method) {
@ -19499,36 +19486,10 @@ static MYSQL_SYSVAR_STR(version, innodb_version_str,
PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_READONLY,
"InnoDB version", NULL, NULL, INNODB_VERSION_STR);
#ifdef HAVE_URING
# include <sys/utsname.h>
static utsname uname_for_io_uring;
#endif
static bool innodb_use_native_aio_default()
{
#ifdef HAVE_URING
utsname &u= uname_for_io_uring;
if (!uname(&u) && u.release[0] == '5' && u.release[1] == '.' &&
u.release[2] == '1' && u.release[3] >= '1' && u.release[3] <= '5' &&
u.release[4] == '.')
{
if (u.release[3] == '5') {
const char *s= strstr(u.version, "5.15.");
if (s || (s= strstr(u.release, "5.15.")))
if ((s[5] >= '3' || s[6] >= '0'))
return true; /* 5.15.3 and later should be fine */
}
io_uring_may_be_unsafe= u.release;
return false; /* working around io_uring hangs (MDEV-26674) */
}
#endif
return true;
}
static MYSQL_SYSVAR_BOOL(use_native_aio, srv_use_native_aio,
PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY,
"Use native AIO if supported on this platform.",
NULL, NULL, innodb_use_native_aio_default());
NULL, NULL, TRUE);
#ifdef HAVE_LIBNUMA
static MYSQL_SYSVAR_BOOL(numa_interleave, srv_numa_interleave,

Loading…
Cancel
Save