Merge branch '10.1' into 10.2
This commit is contained in:
commit
1dd3c8f8ba
@ -181,3 +181,6 @@ ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
|
|||||||
set max_statement_time = 0;
|
set max_statement_time = 0;
|
||||||
drop procedure pr;
|
drop procedure pr;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
SET max_statement_time= 1;
|
||||||
|
CREATE TABLE t ENGINE=InnoDB SELECT * FROM seq_1_to_50000;
|
||||||
|
ERROR 70100: Query execution was interrupted (max_statement_time exceeded)
|
||||||
|
@ -32,7 +32,7 @@ PLUGIN_AUTHOR Sergei Golubchik
|
|||||||
PLUGIN_DESCRIPTION Elliptic curve ED25519 based authentication
|
PLUGIN_DESCRIPTION Elliptic curve ED25519 based authentication
|
||||||
PLUGIN_LICENSE GPL
|
PLUGIN_LICENSE GPL
|
||||||
LOAD_OPTION ON
|
LOAD_OPTION ON
|
||||||
PLUGIN_MATURITY Beta
|
PLUGIN_MATURITY Stable
|
||||||
PLUGIN_AUTH_VERSION 1.0-alpha
|
PLUGIN_AUTH_VERSION 1.0-alpha
|
||||||
create user test1@localhost identified via ed25519 using 'ZIgUREUg5PVgQ6LskhXmO+eZLS0nC8be6HPjYWR4YJY';
|
create user test1@localhost identified via ed25519 using 'ZIgUREUg5PVgQ6LskhXmO+eZLS0nC8be6HPjYWR4YJY';
|
||||||
show grants for test1@localhost;
|
show grants for test1@localhost;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
--source include/have_innodb.inc
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_sequence.inc
|
||||||
--source include/not_valgrind.inc
|
--source include/not_valgrind.inc
|
||||||
|
|
||||||
--echo
|
--echo
|
||||||
@ -226,3 +227,10 @@ call pr();
|
|||||||
set max_statement_time = 0;
|
set max_statement_time = 0;
|
||||||
drop procedure pr;
|
drop procedure pr;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-16615 ASAN SEGV in handler::print_error or server crash after error upon CREATE TABLE
|
||||||
|
#
|
||||||
|
SET max_statement_time= 1;
|
||||||
|
--error ER_STATEMENT_TIMEOUT
|
||||||
|
CREATE TABLE t ENGINE=InnoDB SELECT * FROM seq_1_to_50000;
|
||||||
|
@ -101,7 +101,7 @@ maria_declare_plugin(ed25519)
|
|||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
"1.0-alpha",
|
"1.0-alpha",
|
||||||
MariaDB_PLUGIN_MATURITY_BETA
|
MariaDB_PLUGIN_MATURITY_STABLE
|
||||||
}
|
}
|
||||||
maria_declare_plugin_end;
|
maria_declare_plugin_end;
|
||||||
|
|
||||||
|
@ -3418,8 +3418,8 @@ void handler::print_error(int error, myf errflag)
|
|||||||
break;
|
break;
|
||||||
case HA_ERR_ABORTED_BY_USER:
|
case HA_ERR_ABORTED_BY_USER:
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(table->in_use->killed);
|
DBUG_ASSERT(ha_thd()->killed);
|
||||||
table->in_use->send_kill_message();
|
ha_thd()->send_kill_message();
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
case HA_ERR_WRONG_MRG_TABLE_DEF:
|
case HA_ERR_WRONG_MRG_TABLE_DEF:
|
||||||
|
@ -5809,8 +5809,6 @@ inline int handler::ha_ft_read(uchar *buf)
|
|||||||
inline int handler::ha_rnd_pos_by_record(uchar *buf)
|
inline int handler::ha_rnd_pos_by_record(uchar *buf)
|
||||||
{
|
{
|
||||||
int error= rnd_pos_by_record(buf);
|
int error= rnd_pos_by_record(buf);
|
||||||
if (!error)
|
|
||||||
update_rows_read();
|
|
||||||
table->status=error ? STATUS_NOT_FOUND: 0;
|
table->status=error ? STATUS_NOT_FOUND: 0;
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
|
#include <my_service_manager.h>
|
||||||
|
|
||||||
static char wsrep_defaults_file[FN_REFLEN * 2 + 10 + 30 +
|
static char wsrep_defaults_file[FN_REFLEN * 2 + 10 + 30 +
|
||||||
sizeof(WSREP_SST_OPT_CONF) +
|
sizeof(WSREP_SST_OPT_CONF) +
|
||||||
sizeof(WSREP_SST_OPT_CONF_SUFFIX) +
|
sizeof(WSREP_SST_OPT_CONF_SUFFIX) +
|
||||||
@ -177,6 +179,9 @@ bool wsrep_before_SE()
|
|||||||
static bool sst_complete = false;
|
static bool sst_complete = false;
|
||||||
static bool sst_needed = false;
|
static bool sst_needed = false;
|
||||||
|
|
||||||
|
#define WSREP_EXTEND_TIMEOUT_INTERVAL 30
|
||||||
|
#define WSREP_TIMEDWAIT_SECONDS 10
|
||||||
|
|
||||||
void wsrep_sst_grab ()
|
void wsrep_sst_grab ()
|
||||||
{
|
{
|
||||||
WSREP_INFO("wsrep_sst_grab()");
|
WSREP_INFO("wsrep_sst_grab()");
|
||||||
@ -188,11 +193,25 @@ void wsrep_sst_grab ()
|
|||||||
// Wait for end of SST
|
// Wait for end of SST
|
||||||
bool wsrep_sst_wait ()
|
bool wsrep_sst_wait ()
|
||||||
{
|
{
|
||||||
if (mysql_mutex_lock (&LOCK_wsrep_sst)) abort();
|
struct timespec wtime = {WSREP_TIMEDWAIT_SECONDS, 0};
|
||||||
|
uint32 total_wtime = 0;
|
||||||
|
|
||||||
|
if (mysql_mutex_lock (&LOCK_wsrep_sst))
|
||||||
|
abort();
|
||||||
|
|
||||||
|
WSREP_INFO("Waiting for SST to complete.");
|
||||||
|
|
||||||
while (!sst_complete)
|
while (!sst_complete)
|
||||||
{
|
{
|
||||||
WSREP_INFO("Waiting for SST to complete.");
|
mysql_cond_timedwait (&COND_wsrep_sst, &LOCK_wsrep_sst, &wtime);
|
||||||
mysql_cond_wait (&COND_wsrep_sst, &LOCK_wsrep_sst);
|
|
||||||
|
if (!sst_complete)
|
||||||
|
{
|
||||||
|
total_wtime += wtime.tv_sec;
|
||||||
|
WSREP_DEBUG("Waiting for SST to complete. waited %u secs.", total_wtime);
|
||||||
|
service_manager_extend_timeout(WSREP_EXTEND_TIMEOUT_INTERVAL,
|
||||||
|
"WSREP state transfer ongoing, current seqno: %ld", local_seqno);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (local_seqno >= 0)
|
if (local_seqno >= 0)
|
||||||
@ -1347,10 +1366,22 @@ void wsrep_SE_init_grab()
|
|||||||
|
|
||||||
void wsrep_SE_init_wait()
|
void wsrep_SE_init_wait()
|
||||||
{
|
{
|
||||||
|
struct timespec wtime = {WSREP_TIMEDWAIT_SECONDS, 0};
|
||||||
|
uint32 total_wtime=0;
|
||||||
|
|
||||||
while (SE_initialized == false)
|
while (SE_initialized == false)
|
||||||
{
|
{
|
||||||
mysql_cond_wait (&COND_wsrep_sst_init, &LOCK_wsrep_sst_init);
|
mysql_cond_timedwait (&COND_wsrep_sst_init, &LOCK_wsrep_sst_init, &wtime);
|
||||||
|
|
||||||
|
if (!SE_initialized)
|
||||||
|
{
|
||||||
|
total_wtime += wtime.tv_sec;
|
||||||
|
WSREP_DEBUG("Waiting for SST to complete. waited %u secs.", total_wtime);
|
||||||
|
service_manager_extend_timeout(WSREP_EXTEND_TIMEOUT_INTERVAL,
|
||||||
|
"WSREP SE initialization ongoing.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mysql_mutex_unlock (&LOCK_wsrep_sst_init);
|
mysql_mutex_unlock (&LOCK_wsrep_sst_init);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user