diff options
author | Sergei Golubchik <serg@mariadb.org> | 2017-07-05 19:08:55 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-07-05 19:08:55 +0200 |
commit | f6633bf058802ad7da8196d01fd19d75c53f7274 (patch) | |
tree | b7ba9832aae2a3d0c72d2bf3d89cf2a5f13a44f6 /extra | |
parent | fc5932a1b733b331be20c3f1b45c61c798227dba (diff) | |
parent | e555540ab6b9c3e0d4fdd00af093b115a9401d0a (diff) | |
download | mariadb-git-f6633bf058802ad7da8196d01fd19d75c53f7274.tar.gz |
Merge branch '10.1' into 10.2
Diffstat (limited to 'extra')
-rw-r--r-- | extra/mariabackup/backup_mysql.cc | 37 | ||||
-rw-r--r-- | extra/mariabackup/xbstream.c | 4 |
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; } |