Skip to content

Commit

Permalink
Merge 10.5 into 10.6
Browse files Browse the repository at this point in the history
  • Loading branch information
dr-m committed Feb 23, 2022
2 parents d3e06db + b91a123 commit 164a6aa
Show file tree
Hide file tree
Showing 13 changed files with 46 additions and 28 deletions.
2 changes: 1 addition & 1 deletion mysql-test/include/not_asan.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# be overcome. In normal cases one should fix the bug server/test case or in
# the worst case add a (temporary?) suppression in asan.supp or lsan.supp

if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value="ASAN"`)
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "ASAN%"`)
{
--skip Can't be run with ASan
}
6 changes: 6 additions & 0 deletions mysql-test/include/not_msan.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# This file should only be used with tests that are too big or slow for MSAN.

if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "MSAN%"`)
{
--skip Can't be run WITH_MSAN
}
2 changes: 1 addition & 1 deletion mysql-test/include/not_ubsan.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# be overcome. In normal cases one should fix the bug server/test case or in
# the worst case add a (temporary?) suppression in asan.supp or lsan.supp

if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value="UBSAN"`)
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value LIKE "%UBSAN"`)
{
--skip Can't be run with UBSAN
}
4 changes: 3 additions & 1 deletion mysql-test/include/rpl_stop_server.inc
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ if ($rpl_debug)

# Send shutdown to the connected server and give
# it 60 seconds (of mysqltest's default) to die before zapping it
shutdown_server;
let $rpl_shutdown_timeout= `select 60*(1+9*count(*)) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "MSAN%"`;

shutdown_server $rpl_shutdown_timeout;

--source include/wait_until_disconnected.inc

Expand Down
1 change: 1 addition & 0 deletions mysql-test/main/sum_distinct-big.test
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
--source include/big_test.inc
# Test will take more than one hour with valgrind
--source include/not_valgrind.inc
--source include/not_msan.inc
--source include/have_innodb.inc
--source include/have_sequence.inc

Expand Down
2 changes: 1 addition & 1 deletion mysql-test/suite/binlog/t/flashback-largebinlog.test
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
--let $mysqlbinlog_output= tmp/mysqlbinlog_big_1.out

--source include/have_binlog_format_row.inc

--source include/have_log_bin.inc

# This is a big test.
--source include/big_test.inc
--source include/not_msan.inc
# Test needs more than 4G of memory
--source include/have_64bit.inc

Expand Down
1 change: 1 addition & 0 deletions mysql-test/suite/maria/max_length.test
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
--source include/big_test.inc
# This test is too slow for valgrind
--source include/not_valgrind.inc
--source include/not_msan.inc

drop table if exists t1,t2;

Expand Down
4 changes: 2 additions & 2 deletions sql/sql_class.cc
Original file line number Diff line number Diff line change
Expand Up @@ -710,8 +710,8 @@ THD::THD(my_thread_id id, bool is_wsrep_applier)

/* wsrep-lib */
m_wsrep_next_trx_id(WSREP_UNDEFINED_TRX_ID),
m_wsrep_mutex(LOCK_thd_data),
m_wsrep_cond(COND_wsrep_thd),
m_wsrep_mutex(&LOCK_thd_data),
m_wsrep_cond(&COND_wsrep_thd),
m_wsrep_client_service(this, m_wsrep_client_state),
m_wsrep_client_state(this,
m_wsrep_mutex,
Expand Down
20 changes: 13 additions & 7 deletions sql/sys_vars.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5112,13 +5112,19 @@ static Sys_var_have Sys_have_symlink(
"--skip-symbolic-links option.",
READ_ONLY GLOBAL_VAR(have_symlink), NO_CMD_LINE);

#if defined(__SANITIZE_ADDRESS__) || defined(WITH_UBSAN)

#ifdef __SANITIZE_ADDRESS__
#define SANITIZER_MODE "ASAN"
#else
#define SANITIZER_MODE "UBSAN"
#endif /* __SANITIZE_ADDRESS__ */
#if defined __SANITIZE_ADDRESS__ || defined WITH_UBSAN || __has_feature(memory_sanitizer)

# ifdef __SANITIZE_ADDRESS__
# ifdef WITH_UBSAN
# define SANITIZER_MODE "ASAN+UBSAN"
# else
# define SANITIZER_MODE "ASAN"
# endif
# elif defined WITH_UBSAN
# define SANITIZER_MODE "UBSAN"
# else
# define SANITIZER_MODE "MSAN"
# endif

static char *have_sanitizer;
static Sys_var_charptr Sys_have_santitizer(
Expand Down
10 changes: 5 additions & 5 deletions sql/wsrep_condition_variable.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,29 +26,29 @@ class Wsrep_condition_variable : public wsrep::condition_variable
{
public:

Wsrep_condition_variable(mysql_cond_t& cond)
Wsrep_condition_variable(mysql_cond_t* cond)
: m_cond(cond)
{ }
~Wsrep_condition_variable()
{ }

void notify_one()
{
mysql_cond_signal(&m_cond);
mysql_cond_signal(m_cond);
}

void notify_all()
{
mysql_cond_broadcast(&m_cond);
mysql_cond_broadcast(m_cond);
}

void wait(wsrep::unique_lock<wsrep::mutex>& lock)
{
mysql_mutex_t* mutex= static_cast<mysql_mutex_t*>(lock.mutex()->native());
mysql_cond_wait(&m_cond, mutex);
mysql_cond_wait(m_cond, mutex);
}
private:
mysql_cond_t& m_cond;
mysql_cond_t* m_cond;
};

#endif /* WSREP_CONDITION_VARIABLE_H */
10 changes: 5 additions & 5 deletions sql/wsrep_mutex.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,26 @@
class Wsrep_mutex : public wsrep::mutex
{
public:
Wsrep_mutex(mysql_mutex_t& mutex)
Wsrep_mutex(mysql_mutex_t* mutex)
: m_mutex(mutex)
{ }

void lock()
{
mysql_mutex_lock(&m_mutex);
mysql_mutex_lock(m_mutex);
}

void unlock()
{
mysql_mutex_unlock(&m_mutex);
mysql_mutex_unlock(m_mutex);
}

void* native()
{
return &m_mutex;
return m_mutex;
}
private:
mysql_mutex_t& m_mutex;
mysql_mutex_t* m_mutex;
};

#endif /* WSREP_MUTEX_H */
4 changes: 2 additions & 2 deletions sql/wsrep_server_state.cc
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ Wsrep_server_state::Wsrep_server_state(const std::string& name,
initial_position,
max_protocol_version,
wsrep::server_state::rm_sync)
, m_mutex(LOCK_wsrep_server_state)
, m_cond(COND_wsrep_server_state)
, m_mutex(&LOCK_wsrep_server_state)
, m_cond(&COND_wsrep_server_state)
, m_service(*this)
{ }

Expand Down
8 changes: 5 additions & 3 deletions storage/innobase/dict/dict0mem.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Copyright (c) 1996, 2018, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc.
Copyright (c) 2013, 2021, MariaDB Corporation.
Copyright (c) 2013, 2022, 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
Expand Down Expand Up @@ -1203,6 +1203,8 @@ inline bool dict_index_t::reconstruct_fields()
{
DBUG_ASSERT(is_primary());

const auto old_n_fields = n_fields;

n_fields = (n_fields + table->instant->n_dropped)
& dict_index_t::MAX_N_FIELDS;
n_def = (n_def + table->instant->n_dropped)
Expand Down Expand Up @@ -1230,11 +1232,11 @@ inline bool dict_index_t::reconstruct_fields()
} else {
DBUG_ASSERT(!c.is_not_null());
const auto old = std::find_if(
fields + n_first, fields + n_fields,
fields + n_first, fields + old_n_fields,
[c](const dict_field_t& o)
{ return o.col->ind == c.ind(); });

if (old >= fields + n_fields
if (old >= fields + old_n_fields
|| old->prefix_len
|| old->col != &table->cols[c.ind()]) {
return true;
Expand Down

0 comments on commit 164a6aa

Please sign in to comment.