summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-07-05 19:08:55 +0200
committerSergei Golubchik <serg@mariadb.org>2017-07-05 19:08:55 +0200
commitf6633bf058802ad7da8196d01fd19d75c53f7274 (patch)
treeb7ba9832aae2a3d0c72d2bf3d89cf2a5f13a44f6 /extra
parentfc5932a1b733b331be20c3f1b45c61c798227dba (diff)
parente555540ab6b9c3e0d4fdd00af093b115a9401d0a (diff)
downloadmariadb-git-f6633bf058802ad7da8196d01fd19d75c53f7274.tar.gz
Merge branch '10.1' into 10.2
Diffstat (limited to 'extra')
-rw-r--r--extra/mariabackup/backup_mysql.cc37
-rw-r--r--extra/mariabackup/xbstream.c4
2 files changed, 20 insertions, 21 deletions
diff --git a/extra/mariabackup/backup_mysql.cc b/extra/mariabackup/backup_mysql.cc
index c6ec54c3a6c..5cf63ea94c1 100644
--- a/extra/mariabackup/backup_mysql.cc
+++ b/extra/mariabackup/backup_mysql.cc
@@ -345,7 +345,8 @@ get_mysql_vars(MYSQL *connection)
char *innodb_data_home_dir_var = NULL;
char *innodb_undo_directory_var = NULL;
char *innodb_page_size_var = NULL;
-
+ char *innodb_undo_tablespaces_var = NULL;
+ char *endptr;
unsigned long server_version = mysql_get_server_version(connection);
bool ret = true;
@@ -373,6 +374,7 @@ get_mysql_vars(MYSQL *connection)
{"innodb_data_home_dir", &innodb_data_home_dir_var},
{"innodb_undo_directory", &innodb_undo_directory_var},
{"innodb_page_size", &innodb_page_size_var},
+ {"innodb_undo_tablespaces", &innodb_undo_tablespaces_var},
{NULL, NULL}
};
@@ -461,62 +463,55 @@ get_mysql_vars(MYSQL *connection)
}
/* get some default values is they are missing from my.cnf */
- if (!check_if_param_set("datadir") && datadir_var && *datadir_var) {
+ if (datadir_var && *datadir_var) {
strmake(mysql_real_data_home, datadir_var, FN_REFLEN - 1);
mysql_data_home= mysql_real_data_home;
}
- if (!check_if_param_set("innodb_data_file_path")
- && innodb_data_file_path_var && *innodb_data_file_path_var) {
+ if (innodb_data_file_path_var && *innodb_data_file_path_var) {
innobase_data_file_path = my_strdup(
innodb_data_file_path_var, MYF(MY_FAE));
}
- if (!check_if_param_set("innodb_data_home_dir")
- && innodb_data_home_dir_var && *innodb_data_home_dir_var) {
+ if (innodb_data_home_dir_var && *innodb_data_home_dir_var) {
innobase_data_home_dir = my_strdup(
innodb_data_home_dir_var, MYF(MY_FAE));
}
- if (!check_if_param_set("innodb_log_group_home_dir")
- && innodb_log_group_home_dir_var
+ if (innodb_log_group_home_dir_var
&& *innodb_log_group_home_dir_var) {
srv_log_group_home_dir = my_strdup(
innodb_log_group_home_dir_var, MYF(MY_FAE));
}
- if (!check_if_param_set("innodb_undo_directory")
- && innodb_undo_directory_var && *innodb_undo_directory_var) {
+ if (innodb_undo_directory_var && *innodb_undo_directory_var) {
srv_undo_dir = my_strdup(
innodb_undo_directory_var, MYF(MY_FAE));
}
- if (!check_if_param_set("innodb_log_files_in_group")
- && innodb_log_files_in_group_var) {
- char *endptr;
-
+ if (innodb_log_files_in_group_var) {
srv_n_log_files = strtol(
innodb_log_files_in_group_var, &endptr, 10);
ut_ad(*endptr == 0);
}
- if (!check_if_param_set("innodb_log_file_size")
- && innodb_log_file_size_var) {
- char *endptr;
-
+ if (innodb_log_file_size_var) {
srv_log_file_size = strtoll(
innodb_log_file_size_var, &endptr, 10);
ut_ad(*endptr == 0);
}
- if (!check_if_param_set("innodb_page_size") && innodb_page_size_var) {
- char *endptr;
-
+ if (innodb_page_size_var) {
innobase_page_size = strtoll(
innodb_page_size_var, &endptr, 10);
ut_ad(*endptr == 0);
}
+ if (innodb_undo_tablespaces_var) {
+ srv_undo_tablespaces = strtoul(innodb_undo_tablespaces_var, &endptr, 10);
+ ut_ad(*endptr == 0);
+ }
+
out:
free_mysql_variables(mysql_vars);
diff --git a/extra/mariabackup/xbstream.c b/extra/mariabackup/xbstream.c
index edfe20a9e3c..f3880f9ec03 100644
--- a/extra/mariabackup/xbstream.c
+++ b/extra/mariabackup/xbstream.c
@@ -444,7 +444,11 @@ extract_worker_thread_func(void *arg)
}
if (chunk.type == XB_CHUNK_TYPE_EOF) {
+ pthread_mutex_lock(ctxt->mutex);
pthread_mutex_unlock(&entry->mutex);
+ my_hash_delete(ctxt->filehash, (uchar *) entry);
+ pthread_mutex_unlock(ctxt->mutex);
+
continue;
}