summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extra/wolfssl/CMakeLists.txt9
-rw-r--r--sql/mysql_install_db.cc3
-rw-r--r--sql/rpl_parallel.cc2
-rw-r--r--sql/rpl_rli.cc23
-rw-r--r--sql/rpl_rli.h12
-rw-r--r--sql/select_handler.cc2
-rw-r--r--sql/sql_parse.cc2
-rw-r--r--storage/federatedx/federatedx_pushdown.cc6
8 files changed, 33 insertions, 26 deletions
diff --git a/extra/wolfssl/CMakeLists.txt b/extra/wolfssl/CMakeLists.txt
index dced917169a..e2ba345e3c8 100644
--- a/extra/wolfssl/CMakeLists.txt
+++ b/extra/wolfssl/CMakeLists.txt
@@ -12,13 +12,16 @@ IF(MSVC)
ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
IF(CMAKE_C_COMPILER_ID MATCHES GNU AND CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
MESSAGE_ONCE(NO_INTEL_ASSEMBLY "Disable Intel assembly for WolfSSL - compiler is too old")
+ ELSEIF(WITH_MSAN)
+ MESSAGE_ONCE(MSAN_CANT_HANDLE_IT
+ "Disable Intel assembly for WolfSSL - MSAN can't handle it")
ELSE()
MY_CHECK_C_COMPILER_FLAG(-maes)
MY_CHECK_C_COMPILER_FLAG(-msse4)
MY_CHECK_C_COMPILER_FLAG(-mpclmul)
- ENDIF()
- IF(have_C__maes AND have_C__msse4 AND have_C__mpclmul)
- SET(WOLFSSL_INTELASM ON)
+ IF(have_C__maes AND have_C__msse4 AND have_C__mpclmul)
+ SET(WOLFSSL_INTELASM ON)
+ ENDIF()
ENDIF()
ENDIF()
ENDIF()
diff --git a/sql/mysql_install_db.cc b/sql/mysql_install_db.cc
index f8b94159a8f..ed3f777b1de 100644
--- a/sql/mysql_install_db.cc
+++ b/sql/mysql_install_db.cc
@@ -364,11 +364,12 @@ static int create_myini()
static const char update_root_passwd_part1[]=
"UPDATE mysql.global_priv SET priv=json_set(priv,"
+ "'$.password_last_changed', UNIX_TIMESTAMP(),"
"'$.plugin','mysql_native_password',"
"'$.authentication_string',PASSWORD(";
static const char update_root_passwd_part2[]=
")) where User='root';\n";
-static const char remove_default_user_cmd[]=
+static const char remove_default_user_cmd[]=
"DELETE FROM mysql.user where User='';\n";
static const char allow_remote_root_access_cmd[]=
"CREATE TEMPORARY TABLE tmp_user LIKE global_priv;\n"
diff --git a/sql/rpl_parallel.cc b/sql/rpl_parallel.cc
index ce612999eaf..4a15dd709db 100644
--- a/sql/rpl_parallel.cc
+++ b/sql/rpl_parallel.cc
@@ -1777,7 +1777,7 @@ rpl_parallel_thread::inuse_relaylog_refcount_update()
inuse_relaylog *ir= accumulated_ir_last;
if (ir)
{
- my_atomic_add64(&ir->dequeued_count, accumulated_ir_count);
+ ir->dequeued_count+= accumulated_ir_count;
accumulated_ir_count= 0;
accumulated_ir_last= NULL;
}
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index 8225f774f7b..1a0147f7d8d 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -1,5 +1,5 @@
/* Copyright (c) 2006, 2017, Oracle and/or its affiliates.
- Copyright (c) 2010, 2017, MariaDB Corporation
+ Copyright (c) 2010, 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
@@ -1437,32 +1437,27 @@ Relay_log_info::alloc_inuse_relaylog(const char *name)
uint32 gtid_count;
rpl_gtid *gtid_list;
- if (!(ir= (inuse_relaylog *)my_malloc(PSI_INSTRUMENT_ME, sizeof(*ir),
- MYF(MY_WME|MY_ZEROFILL))))
- {
- my_error(ER_OUTOFMEMORY, MYF(0), (int)sizeof(*ir));
- return 1;
- }
gtid_count= relay_log_state.count();
if (!(gtid_list= (rpl_gtid *)my_malloc(PSI_INSTRUMENT_ME,
sizeof(*gtid_list)*gtid_count, MYF(MY_WME))))
{
- my_free(ir);
my_error(ER_OUTOFMEMORY, MYF(0), (int)sizeof(*gtid_list)*gtid_count);
return 1;
}
+ if (!(ir= new inuse_relaylog(this, gtid_list, gtid_count, name)))
+ {
+ my_free(gtid_list);
+ my_error(ER_OUTOFMEMORY, MYF(0), (int) sizeof(*ir));
+ return 1;
+ }
if (relay_log_state.get_gtid_list(gtid_list, gtid_count))
{
my_free(gtid_list);
- my_free(ir);
+ delete ir;
DBUG_ASSERT(0 /* Should not be possible as we allocated correct length */);
my_error(ER_OUT_OF_RESOURCES, MYF(0));
return 1;
}
- ir->rli= this;
- strmake_buf(ir->name, name);
- ir->relay_log_state= gtid_list;
- ir->relay_log_state_count= gtid_count;
if (!inuse_relaylog_list)
inuse_relaylog_list= ir;
@@ -1481,7 +1476,7 @@ void
Relay_log_info::free_inuse_relaylog(inuse_relaylog *ir)
{
my_free(ir->relay_log_state);
- my_free(ir);
+ delete ir;
}
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h
index 0e2e42fcb08..5d2d33c397f 100644
--- a/sql/rpl_rli.h
+++ b/sql/rpl_rli.h
@@ -608,10 +608,20 @@ struct inuse_relaylog {
/* Number of events in this relay log queued for worker threads. */
int64 queued_count;
/* Number of events completed by worker threads. */
- volatile int64 dequeued_count;
+ Atomic_counter<int64> dequeued_count;
/* Set when all events have been read from a relaylog. */
bool completed;
char name[FN_REFLEN];
+
+ inuse_relaylog(Relay_log_info *rli_arg, rpl_gtid *relay_log_state_arg,
+ uint32 relay_log_state_count_arg,
+ const char *name_arg):
+ next(0), rli(rli_arg), relay_log_state(relay_log_state_arg),
+ relay_log_state_count(relay_log_state_count_arg), queued_count(0),
+ dequeued_count(0), completed(false)
+ {
+ strmake_buf(name, name_arg);
+ }
};
diff --git a/sql/select_handler.cc b/sql/select_handler.cc
index 4d2cacd1a6e..9a2f6398a86 100644
--- a/sql/select_handler.cc
+++ b/sql/select_handler.cc
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2018, 2019 MariaDB
+ Copyright (c) 2018, 2020, MariaDB
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
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 211a51a7a7e..fb7002f701a 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -9138,8 +9138,8 @@ kill_one_thread(THD *thd, longlong id, killed_state kill_signal, killed_type typ
else
error= (type == KILL_TYPE_QUERY ? ER_KILL_QUERY_DENIED_ERROR :
ER_KILL_DENIED_ERROR);
- mysql_mutex_unlock(&tmp->LOCK_thd_kill);
if (WSREP(tmp)) mysql_mutex_unlock(&tmp->LOCK_thd_data);
+ mysql_mutex_unlock(&tmp->LOCK_thd_kill);
}
DBUG_PRINT("exit", ("%d", error));
DBUG_RETURN(error);
diff --git a/storage/federatedx/federatedx_pushdown.cc b/storage/federatedx/federatedx_pushdown.cc
index 2701436ccf5..664f0570238 100644
--- a/storage/federatedx/federatedx_pushdown.cc
+++ b/storage/federatedx/federatedx_pushdown.cc
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2019 MariaDB
+ Copyright (c) 2019, 2020, MariaDB
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
@@ -295,10 +295,8 @@ int ha_federatedx_select_handler::end_scan()
DBUG_RETURN(0);
}
-\
+
void ha_federatedx_select_handler::print_error(int error, myf error_flag)
{
select_handler::print_error(error, error_flag);
}
-
-