diff options
-rw-r--r-- | extra/wolfssl/CMakeLists.txt | 9 | ||||
-rw-r--r-- | sql/mysql_install_db.cc | 3 | ||||
-rw-r--r-- | sql/rpl_parallel.cc | 2 | ||||
-rw-r--r-- | sql/rpl_rli.cc | 23 | ||||
-rw-r--r-- | sql/rpl_rli.h | 12 | ||||
-rw-r--r-- | sql/select_handler.cc | 2 | ||||
-rw-r--r-- | sql/sql_parse.cc | 2 | ||||
-rw-r--r-- | storage/federatedx/federatedx_pushdown.cc | 6 |
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); } - - |