diff options
author | Oleksandr Byelkin <sanja@mariadb.com> | 2020-10-30 17:23:53 +0100 |
---|---|---|
committer | Oleksandr Byelkin <sanja@mariadb.com> | 2020-10-30 17:23:53 +0100 |
commit | 794f66513967891520ec432123dcff8270871b93 (patch) | |
tree | da31ab80611c016e9dca9af28ffd65c4a838e2f5 /extra | |
parent | 14d43f4fa691e3af113195a3608f1fc401b85090 (diff) | |
parent | 72eea39d4c4a8bcadccfdac457e61abc7b618ff8 (diff) | |
download | mariadb-git-794f66513967891520ec432123dcff8270871b93.tar.gz |
Merge branch '10.2' into 10.3
Diffstat (limited to 'extra')
-rw-r--r-- | extra/mariabackup/backup_copy.cc | 2 | ||||
-rw-r--r-- | extra/mariabackup/backup_copy.h | 4 | ||||
-rw-r--r-- | extra/mariabackup/xtrabackup.cc | 11 |
3 files changed, 15 insertions, 2 deletions
diff --git a/extra/mariabackup/backup_copy.cc b/extra/mariabackup/backup_copy.cc index d821ea23748..6d1739e3dc3 100644 --- a/extra/mariabackup/backup_copy.cc +++ b/extra/mariabackup/backup_copy.cc @@ -1445,7 +1445,7 @@ out: void backup_fix_ddl(void); -static lsn_t get_current_lsn(MYSQL *connection) +lsn_t get_current_lsn(MYSQL *connection) { static const char lsn_prefix[] = "\nLog sequence number "; lsn_t lsn = 0; diff --git a/extra/mariabackup/backup_copy.h b/extra/mariabackup/backup_copy.h index fbc09eaded3..7c886719f37 100644 --- a/extra/mariabackup/backup_copy.h +++ b/extra/mariabackup/backup_copy.h @@ -3,6 +3,7 @@ #define XTRABACKUP_BACKUP_COPY_H #include <my_global.h> +#include <mysql.h> #include "datasink.h" /* special files */ @@ -48,4 +49,7 @@ is_path_separator(char); bool directory_exists(const char *dir, bool create); +lsn_t +get_current_lsn(MYSQL *connection); + #endif diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 5cb0aca60bf..ad36893353d 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -2571,6 +2571,8 @@ static my_bool xtrabackup_copy_datafile(fil_node_t *node, uint thread_n, return(FALSE); } + memset(&write_filt_ctxt, 0, sizeof(xb_write_filt_ctxt_t)); + bool was_dropped; pthread_mutex_lock(&backup_mutex); was_dropped = (ddl_tracker.drops.find(node->space->id) != ddl_tracker.drops.end()); @@ -2602,7 +2604,6 @@ static my_bool xtrabackup_copy_datafile(fil_node_t *node, uint thread_n, sizeof dst_name - 1); dst_name[sizeof dst_name - 1] = '\0'; - memset(&write_filt_ctxt, 0, sizeof(xb_write_filt_ctxt_t)); ut_a(write_filter.process != NULL); if (write_filter.init != NULL && @@ -2943,8 +2944,14 @@ static void dbug_mariabackup_event(const char *event,const char *key) } #define DBUG_MARIABACKUP_EVENT(A, B) DBUG_EXECUTE_IF("mariabackup_events", dbug_mariabackup_event(A,B);); +#define DBUG_MB_INJECT_CODE(EVENT, KEY, CODE) \ + DBUG_EXECUTE_IF("mariabackup_inject_code", {\ + char *env = getenv(EVENT); \ + if (env && !strcmp(env, KEY)) { CODE } \ + }) #else #define DBUG_MARIABACKUP_EVENT(A,B) +#define DBUG_MB_INJECT_CODE(EVENT, KEY, CODE) #endif /************************************************************************** @@ -2969,6 +2976,8 @@ DECLARE_THREAD(data_copy_thread_func)( while ((node = datafiles_iter_next(ctxt->it)) != NULL) { DBUG_MARIABACKUP_EVENT("before_copy", node->space->name); + DBUG_MB_INJECT_CODE("wait_innodb_redo_before_copy", node->space->name, + backup_wait_for_lsn(get_current_lsn(mysql_connection));); /* copy the datafile */ if (xtrabackup_copy_datafile(node, num, NULL, xtrabackup_incremental ? wf_incremental : wf_write_through)) |