Commit a8a27e65 authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

MDEV-18212 mariabackup: Make output format uniform whenever possible

parent 61b60007
...@@ -57,19 +57,19 @@ MYSQL_ADD_EXECUTABLE(mariabackup ...@@ -57,19 +57,19 @@ MYSQL_ADD_EXECUTABLE(mariabackup
xtrabackup.cc xtrabackup.cc
innobackupex.cc innobackupex.cc
changed_page_bitmap.cc changed_page_bitmap.cc
datasink.c datasink.cc
ds_buffer.c ds_buffer.cc
ds_compress.c ds_compress.cc
ds_local.cc ds_local.cc
ds_stdout.c ds_stdout.cc
ds_tmpfile.c ds_tmpfile.cc
ds_xbstream.c ds_xbstream.cc
fil_cur.cc fil_cur.cc
quicklz/quicklz.c quicklz/quicklz.c
read_filt.cc read_filt.cc
write_filt.cc write_filt.cc
wsrep.cc wsrep.cc
xbstream_write.c xbstream_write.cc
backup_mysql.cc backup_mysql.cc
backup_copy.cc backup_copy.cc
encryption_plugin.cc encryption_plugin.cc
...@@ -96,13 +96,13 @@ ENDIF() ...@@ -96,13 +96,13 @@ ENDIF()
# xbstream binary # xbstream binary
######################################################################## ########################################################################
MYSQL_ADD_EXECUTABLE(mbstream MYSQL_ADD_EXECUTABLE(mbstream
ds_buffer.c ds_buffer.cc
ds_local.cc ds_local.cc
ds_stdout.c ds_stdout.cc
datasink.c datasink.cc
xbstream.c xbstream.cc
xbstream_read.c xbstream_read.cc
xbstream_write.c xbstream_write.cc
COMPONENT backup COMPONENT backup
) )
......
...@@ -237,7 +237,7 @@ datadir_iter_next_database(datadir_iter_t *it) ...@@ -237,7 +237,7 @@ datadir_iter_next_database(datadir_iter_t *it)
if (os_file_closedir(it->dbdir) != 0) { if (os_file_closedir(it->dbdir) != 0) {
msg("Warning: could not" msg("Warning: could not"
" close database directory %s\n", it->dbpath); " close database directory %s", it->dbpath);
it->err = DB_ERROR; it->err = DB_ERROR;
...@@ -278,7 +278,7 @@ datadir_iter_next_database(datadir_iter_t *it) ...@@ -278,7 +278,7 @@ datadir_iter_next_database(datadir_iter_t *it)
} }
if (check_if_skip_database_by_path(it->dbpath)) { if (check_if_skip_database_by_path(it->dbpath)) {
msg("Skipping db: %s\n", it->dbpath); msg("Skipping db: %s", it->dbpath);
continue; continue;
} }
...@@ -522,19 +522,15 @@ datafile_open(const char *file, datafile_cur_t *cursor, uint thread_n) ...@@ -522,19 +522,15 @@ datafile_open(const char *file, datafile_cur_t *cursor, uint thread_n)
/* The following call prints an error message */ /* The following call prints an error message */
os_file_get_last_error(TRUE); os_file_get_last_error(TRUE);
msg("[%02u] error: cannot open " msg(thread_n,"error: cannot open "
"file %s\n", "file %s", cursor->abs_path);
thread_n, cursor->abs_path);
return(false); return(false);
} }
if (!my_stat(cursor->abs_path, &cursor->statinfo, 0)) { if (!my_stat(cursor->abs_path, &cursor->statinfo, 0)) {
msg("[%02u] error: cannot stat %s\n", msg(thread_n, "error: cannot stat %s", cursor->abs_path);
thread_n, cursor->abs_path);
datafile_close(cursor); datafile_close(cursor);
return(false); return(false);
} }
...@@ -728,9 +724,8 @@ directory_exists(const char *dir, bool create) ...@@ -728,9 +724,8 @@ directory_exists(const char *dir, bool create)
if (mkdirp(dir, 0777, MYF(0)) < 0) { if (mkdirp(dir, 0777, MYF(0)) < 0) {
my_strerror(errbuf, sizeof(errbuf), my_errno); my_strerror(errbuf, sizeof(errbuf), my_errno);
msg("Can not create directory %s: %s\n", dir, errbuf); msg("Can not create directory %s: %s", dir, errbuf);
return(false); return(false);
} }
} }
...@@ -739,7 +734,7 @@ directory_exists(const char *dir, bool create) ...@@ -739,7 +734,7 @@ directory_exists(const char *dir, bool create)
if (os_dir == NULL) { if (os_dir == NULL) {
my_strerror(errbuf, sizeof(errbuf), my_errno); my_strerror(errbuf, sizeof(errbuf), my_errno);
msg("Can not open directory %s: %s\n", dir, msg("Can not open directory %s: %s", dir,
errbuf); errbuf);
return(false); return(false);
...@@ -768,7 +763,7 @@ directory_exists_and_empty(const char *dir, const char *comment) ...@@ -768,7 +763,7 @@ directory_exists_and_empty(const char *dir, const char *comment)
os_dir = os_file_opendir(dir, FALSE); os_dir = os_file_opendir(dir, FALSE);
if (os_dir == NULL) { if (os_dir == NULL) {
msg("%s can not open directory %s\n", comment, dir); msg("%s can not open directory %s", comment, dir);
return(false); return(false);
} }
...@@ -777,7 +772,7 @@ directory_exists_and_empty(const char *dir, const char *comment) ...@@ -777,7 +772,7 @@ directory_exists_and_empty(const char *dir, const char *comment)
os_file_closedir(os_dir); os_file_closedir(os_dir);
if (!empty) { if (!empty) {
msg("%s directory %s is not empty!\n", comment, dir); msg("%s directory %s is not empty!", comment, dir);
} }
return(empty); return(empty);
...@@ -826,7 +821,7 @@ datafile_copy_backup(const char *filepath, uint thread_n) ...@@ -826,7 +821,7 @@ datafile_copy_backup(const char *filepath, uint thread_n)
of the filters value. */ of the filters value. */
if (check_if_skip_table(filepath)) { if (check_if_skip_table(filepath)) {
msg_ts("[%02u] Skipping %s.\n", thread_n, filepath); msg(thread_n,"Skipping %s.", filepath);
return(true); return(true);
} }
...@@ -892,14 +887,13 @@ backup_file_vprintf(const char *filename, const char *fmt, va_list ap) ...@@ -892,14 +887,13 @@ backup_file_vprintf(const char *filename, const char *fmt, va_list ap)
dstfile = ds_open(ds_data, filename, &stat); dstfile = ds_open(ds_data, filename, &stat);
if (dstfile == NULL) { if (dstfile == NULL) {
msg("[%02u] error: " msg("error: Can't open the destination stream for %s",
"cannot open the destination stream for %s\n", filename);
0, filename);
goto error; goto error;
} }
action = xb_get_copy_action("Writing"); action = xb_get_copy_action("Writing");
msg_ts("[%02u] %s %s\n", 0, action, filename); msg("%s %s", action, filename);
if (buf_len == -1) { if (buf_len == -1) {
goto error; goto error;
...@@ -910,7 +904,7 @@ backup_file_vprintf(const char *filename, const char *fmt, va_list ap) ...@@ -910,7 +904,7 @@ backup_file_vprintf(const char *filename, const char *fmt, va_list ap)
} }
/* close */ /* close */
msg_ts("[%02u] ...done\n", 0); msg(" ...done");
free(buf); free(buf);
if (ds_close(dstfile)) { if (ds_close(dstfile)) {
...@@ -926,7 +920,7 @@ backup_file_vprintf(const char *filename, const char *fmt, va_list ap) ...@@ -926,7 +920,7 @@ backup_file_vprintf(const char *filename, const char *fmt, va_list ap)
} }
error_close: error_close:
msg("[%02u] Error: backup file failed.\n", 0); msg("Error: backup file failed.");
return(false); /*ERROR*/ return(false); /*ERROR*/
} }
...@@ -986,7 +980,7 @@ run_data_threads(datadir_iter_t *it, os_thread_func_t func, uint n) ...@@ -986,7 +980,7 @@ run_data_threads(datadir_iter_t *it, os_thread_func_t func, uint n)
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
ret = data_threads[i].ret && ret; ret = data_threads[i].ret && ret;
if (!data_threads[i].ret) { if (!data_threads[i].ret) {
msg("Error: thread %u failed.\n", i); msg("Error: thread %u failed.", i);
} }
} }
...@@ -1021,14 +1015,12 @@ copy_file(ds_ctxt_t *datasink, ...@@ -1021,14 +1015,12 @@ copy_file(ds_ctxt_t *datasink,
dstfile = ds_open(datasink, dst_path, &cursor.statinfo); dstfile = ds_open(datasink, dst_path, &cursor.statinfo);
if (dstfile == NULL) { if (dstfile == NULL) {
msg("[%02u] error: " msg(thread_n,"error: "
"cannot open the destination stream for %s\n", "cannot open the destination stream for %s", dst_name);
thread_n, dst_name);
goto error; goto error;
} }
msg_ts("[%02u] %s %s to %s\n", msg(thread_n, "%s %s to %s", xb_get_copy_action(), src_file_path, dstfile->path);
thread_n, xb_get_copy_action(), src_file_path, dstfile->path);
/* The main copy loop */ /* The main copy loop */
while ((res = datafile_read(&cursor)) == XB_FIL_CUR_SUCCESS) { while ((res = datafile_read(&cursor)) == XB_FIL_CUR_SUCCESS) {
...@@ -1043,7 +1035,7 @@ copy_file(ds_ctxt_t *datasink, ...@@ -1043,7 +1035,7 @@ copy_file(ds_ctxt_t *datasink,
} }
/* close */ /* close */
msg_ts("[%02u] ...done\n", thread_n); msg(thread_n," ...done");
datafile_close(&cursor); datafile_close(&cursor);
if (ds_close(dstfile)) { if (ds_close(dstfile)) {
goto error_close; goto error_close;
...@@ -1057,7 +1049,7 @@ copy_file(ds_ctxt_t *datasink, ...@@ -1057,7 +1049,7 @@ copy_file(ds_ctxt_t *datasink,
} }
error_close: error_close:
msg("[%02u] Error: copy_file() failed.\n", thread_n); msg(thread_n,"Error: copy_file() failed.");
return(false); /*ERROR*/ return(false); /*ERROR*/
} }
...@@ -1089,36 +1081,34 @@ move_file(ds_ctxt_t *datasink, ...@@ -1089,36 +1081,34 @@ move_file(ds_ctxt_t *datasink,
if (file_exists(dst_file_path_abs)) { if (file_exists(dst_file_path_abs)) {
msg("Error: Move file %s to %s failed: Destination " msg("Error: Move file %s to %s failed: Destination "
"file exists\n", "file exists", src_file_path, dst_file_path_abs);
src_file_path, dst_file_path_abs);
return(false); return(false);
} }
msg_ts("[%02u] Moving %s to %s\n", msg(thread_n,"Moving %s to %s", src_file_path, dst_file_path_abs);
thread_n, src_file_path, dst_file_path_abs);
if (my_rename(src_file_path, dst_file_path_abs, MYF(0)) != 0) { if (my_rename(src_file_path, dst_file_path_abs, MYF(0)) != 0) {
if (my_errno == EXDEV) { if (my_errno == EXDEV) {
bool ret; bool ret;
ret = copy_file(datasink, src_file_path, ret = copy_file(datasink, src_file_path,
dst_file_path, thread_n); dst_file_path, thread_n);
msg_ts("[%02u] Removing %s\n", thread_n, src_file_path); msg(thread_n,"Removing %s", src_file_path);
if (unlink(src_file_path) != 0) { if (unlink(src_file_path) != 0) {
my_strerror(errbuf, sizeof(errbuf), errno); my_strerror(errbuf, sizeof(errbuf), errno);
msg("Error: unlink %s failed: %s\n", msg("Error: unlink %s failed: %s",
src_file_path, src_file_path,
errbuf); errbuf);
} }
return(ret); return(ret);
} }
my_strerror(errbuf, sizeof(errbuf), my_errno); my_strerror(errbuf, sizeof(errbuf), my_errno);
msg("Can not move file %s to %s: %s\n", msg("Can not move file %s to %s: %s",
src_file_path, dst_file_path_abs, src_file_path, dst_file_path_abs,
errbuf); errbuf);
return(false); return(false);
} }
msg_ts("[%02u] ...done\n", thread_n); msg(thread_n," ...done");
return(true); return(true);
} }
...@@ -1270,13 +1260,13 @@ backup_files(const char *from, bool prep_mode) ...@@ -1270,13 +1260,13 @@ backup_files(const char *from, bool prep_mode)
prep_mode ? 1 : 2); prep_mode ? 1 : 2);
rsync_tmpfile = fopen(rsync_tmpfile_name, "w"); rsync_tmpfile = fopen(rsync_tmpfile_name, "w");
if (rsync_tmpfile == NULL) { if (rsync_tmpfile == NULL) {
msg("Error: can't create file %s\n", msg("Error: can't create file %s",
rsync_tmpfile_name); rsync_tmpfile_name);
return(false); return(false);
} }
} }
msg_ts("Starting %s non-InnoDB tables and files\n", msg("Starting %s non-InnoDB tables and files",
prep_mode ? "prep copy of" : "to backup"); prep_mode ? "prep copy of" : "to backup");
datadir_node_init(&node); datadir_node_init(&node);
...@@ -1292,7 +1282,7 @@ backup_files(const char *from, bool prep_mode) ...@@ -1292,7 +1282,7 @@ backup_files(const char *from, bool prep_mode)
ret = datafile_copy_backup(node.filepath, 1); ret = datafile_copy_backup(node.filepath, 1);
} }
if (!ret) { if (!ret) {
msg("Failed to copy file %s\n", node.filepath); msg("Failed to copy file %s", node.filepath);
goto out; goto out;
} }
} else if (!prep_mode) { } else if (!prep_mode) {
...@@ -1302,7 +1292,7 @@ backup_files(const char *from, bool prep_mode) ...@@ -1302,7 +1292,7 @@ backup_files(const char *from, bool prep_mode)
"%s/db.opt", node.filepath); "%s/db.opt", node.filepath);
if (!(ret = backup_file_printf( if (!(ret = backup_file_printf(
trim_dotslash(path), "%s", ""))) { trim_dotslash(path), "%s", ""))) {
msg("Failed to create file %s\n", path); msg("Failed to create file %s", path);
goto out; goto out;
} }
} }
...@@ -1327,13 +1317,13 @@ backup_files(const char *from, bool prep_mode) ...@@ -1327,13 +1317,13 @@ backup_files(const char *from, bool prep_mode)
cmd << "rsync -t . --files-from=" << rsync_tmpfile_name cmd << "rsync -t . --files-from=" << rsync_tmpfile_name
<< " " << xtrabackup_target_dir; << " " << xtrabackup_target_dir;
msg_ts("Starting rsync as: %s\n", cmd.str().c_str()); msg("Starting rsync as: %s", cmd.str().c_str());
if ((err = system(cmd.str().c_str()) && !prep_mode) != 0) { if ((err = system(cmd.str().c_str()) && !prep_mode) != 0) {
msg_ts("Error: rsync failed with error code %d\n", err); msg("Error: rsync failed with error code %d", err);
ret = false; ret = false;
goto out; goto out;
} }
msg_ts("rsync finished successfully.\n"); msg("rsync finished successfully.");
if (!prep_mode && !opt_no_lock) { if (!prep_mode && !opt_no_lock) {
char path[FN_REFLEN]; char path[FN_REFLEN];
...@@ -1349,7 +1339,7 @@ backup_files(const char *from, bool prep_mode) ...@@ -1349,7 +1339,7 @@ backup_files(const char *from, bool prep_mode)
rsync_tmpfile = fopen(rsync_tmpfile_name, "r"); rsync_tmpfile = fopen(rsync_tmpfile_name, "r");
if (rsync_tmpfile == NULL) { if (rsync_tmpfile == NULL) {
msg("Error: can't open file %s\n", msg("Error: can't open file %s",
rsync_tmpfile_name); rsync_tmpfile_name);
ret = false; ret = false;
goto out; goto out;
...@@ -1365,7 +1355,7 @@ backup_files(const char *from, bool prep_mode) ...@@ -1365,7 +1355,7 @@ backup_files(const char *from, bool prep_mode)
snprintf(dst_path, sizeof(dst_path), snprintf(dst_path, sizeof(dst_path),
"%s/%s", xtrabackup_target_dir, "%s/%s", xtrabackup_target_dir,
path); path);
msg_ts("Removing %s\n", dst_path); msg("Removing %s", dst_path);
unlink(dst_path); unlink(dst_path);
} }
} }
...@@ -1375,7 +1365,7 @@ backup_files(const char *from, bool prep_mode) ...@@ -1375,7 +1365,7 @@ backup_files(const char *from, bool prep_mode)
} }
} }
msg_ts("Finished %s non-InnoDB tables and files\n", msg("Finished %s non-InnoDB tables and files",
prep_mode ? "a prep copy of" : "backing up"); prep_mode ? "a prep copy of" : "backing up");
out: out:
...@@ -1447,7 +1437,7 @@ bool backup_start() ...@@ -1447,7 +1437,7 @@ bool backup_start()
rocksdb_create_checkpoint(); rocksdb_create_checkpoint();
} }
msg_ts("Waiting for log copy thread to read lsn %llu\n", (ulonglong)server_lsn_after_lock); msg("Waiting for log copy thread to read lsn %llu", (ulonglong)server_lsn_after_lock);
backup_wait_for_lsn(server_lsn_after_lock); backup_wait_for_lsn(server_lsn_after_lock);
backup_fix_ddl(); backup_fix_ddl();
...@@ -1490,7 +1480,7 @@ bool backup_start() ...@@ -1490,7 +1480,7 @@ bool backup_start()
} }
if (have_flush_engine_logs && !opt_no_lock) { if (have_flush_engine_logs && !opt_no_lock) {
msg_ts("Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...\n"); msg("Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...");
xb_mysql_query(mysql_connection, xb_mysql_query(mysql_connection,
"FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS", false); "FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS", false);
} }
...@@ -1514,7 +1504,7 @@ void backup_release() ...@@ -1514,7 +1504,7 @@ void backup_release()
} }
if (opt_safe_slave_backup && sql_thread_started) { if (opt_safe_slave_backup && sql_thread_started) {
msg("Starting slave SQL thread\n"); msg("Starting slave SQL thread");
xb_mysql_query(mysql_connection, xb_mysql_query(mysql_connection,
"START SLAVE SQL_THREAD", false); "START SLAVE SQL_THREAD", false);
} }
...@@ -1540,12 +1530,12 @@ bool backup_finish() ...@@ -1540,12 +1530,12 @@ bool backup_finish()
rocksdb_backup_checkpoint(); rocksdb_backup_checkpoint();
} }
msg_ts("Backup created in directory '%s'\n", xtrabackup_target_dir); msg("Backup created in directory '%s'", xtrabackup_target_dir);
if (mysql_binlog_position != NULL) { if (mysql_binlog_position != NULL) {
msg("MySQL binlog position: %s\n", mysql_binlog_position); msg("MySQL binlog position: %s", mysql_binlog_position);
} }
if (mysql_slave_position && opt_slave_info) { if (mysql_slave_position && opt_slave_info) {
msg("MySQL slave binlog position: %s\n", msg("MySQL slave binlog position: %s",
mysql_slave_position); mysql_slave_position);
} }
...@@ -1605,7 +1595,7 @@ ibx_copy_incremental_over_full() ...@@ -1605,7 +1595,7 @@ ibx_copy_incremental_over_full()
if (!(ret = copy_file(ds_data, node.filepath, if (!(ret = copy_file(ds_data, node.filepath,
node.filepath_rel, 1))) { node.filepath_rel, 1))) {
msg("Failed to copy file %s\n", msg("Failed to copy file %s",
node.filepath); node.filepath);
goto cleanup; goto cleanup;
} }
...@@ -1745,7 +1735,7 @@ copy_back() ...@@ -1745,7 +1735,7 @@ copy_back()
/* cd to backup directory */ /* cd to backup directory */
if (my_setwd(xtrabackup_target_dir, MYF(MY_WME))) if (my_setwd(xtrabackup_target_dir, MYF(MY_WME)))
{ {
msg("cannot my_setwd %s\n", xtrabackup_target_dir); msg("Can't my_setwd %s", xtrabackup_target_dir);
return(false); return(false);
} }
...@@ -1758,7 +1748,7 @@ copy_back() ...@@ -1758,7 +1748,7 @@ copy_back()
srv_sys_space.set_path("."); srv_sys_space.set_path(".");
if (!srv_sys_space.parse_params(innobase_data_file_path, true)) { if (!srv_sys_space.parse_params(innobase_data_file_path, true)) {
msg("syntax error in innodb_data_file_path\n"); msg("syntax error in innodb_data_file_path");
return(false); return(false);
} }
...@@ -1872,12 +1862,12 @@ copy_back() ...@@ -1872,12 +1862,12 @@ copy_back()
snprintf(path, sizeof(path), "%s/%s", snprintf(path, sizeof(path), "%s/%s",
mysql_data_home, node.filepath_rel); mysql_data_home, node.filepath_rel);
msg_ts("[%02u] Creating directory %s\n", 1, path); msg("Creating directory %s", path);
if (mkdirp(path, 0777, MYF(0)) < 0) { if (mkdirp(path, 0777, MYF(0)) < 0) {
char errbuf[MYSYS_STRERROR_SIZE]; char errbuf[MYSYS_STRERROR_SIZE];
my_strerror(errbuf, sizeof(errbuf), my_errno); my_strerror(errbuf, sizeof(errbuf), my_errno);
msg("Can not create directory %s: %s\n", msg("Can not create directory %s: %s",
path, errbuf); path, errbuf);
ret = false; ret = false;
...@@ -1885,7 +1875,7 @@ copy_back() ...@@ -1885,7 +1875,7 @@ copy_back()
} }
msg_ts("[%02u] ...done.", 1); msg(" ...done.");
continue; continue;
} }
...@@ -1995,14 +1985,14 @@ decrypt_decompress_file(const char *filepath, uint thread_n) ...@@ -1995,14 +1985,14 @@ decrypt_decompress_file(const char *filepath, uint thread_n)
if (needs_action) { if (needs_action) {
msg_ts("[%02u] %s\n", thread_n, message.str().c_str()); msg(thread_n,"%s\n", message.str().c_str());
if (system(cmd.str().c_str()) != 0) { if (system(cmd.str().c_str()) != 0) {
return(false); return(false);
} }
if (opt_remove_original) { if (opt_remove_original) {
msg_ts("[%02u] removing %s\n", thread_n, filepath); msg(thread_n, "Removing %s", filepath);
if (my_delete(filepath, MYF(MY_WME)) != 0) { if (my_delete(filepath, MYF(MY_WME)) != 0) {
return(false); return(false);
} }
...@@ -2065,7 +2055,7 @@ decrypt_decompress() ...@@ -2065,7 +2055,7 @@ decrypt_decompress()
/* cd to backup directory */ /* cd to backup directory */
if (my_setwd(xtrabackup_target_dir, MYF(MY_WME))) if (my_setwd(xtrabackup_target_dir, MYF(MY_WME)))
{ {
msg("cannot my_setwd %s\n", xtrabackup_target_dir); msg("Can't my_setwd %s", xtrabackup_target_dir);
return(false); return(false);
} }
...@@ -2215,8 +2205,7 @@ static void copy_or_move_dir(const char *from, const char *to, bool do_copy, boo ...@@ -2215,8 +2205,7 @@ static void copy_or_move_dir(const char *from, const char *to, bool do_copy, boo
rc = make_hardlink(from_path, to_path); rc = make_hardlink(from_path, to_path);
if (rc) if (rc)
{ {
msg_ts("[%02u] Creating hardlink from %s to %s\n", msg("Creating hardlink from %s to %s",from_path, to_path);
1, from_path, to_path);
} }
else else
{ {
...@@ -2250,14 +2239,14 @@ static void copy_or_move_dir(const char *from, const char *to, bool do_copy, boo ...@@ -2250,14 +2239,14 @@ static void copy_or_move_dir(const char *from, const char *to, bool do_copy, boo
*/ */
static void rocksdb_lock_checkpoint() static void rocksdb_lock_checkpoint()
{ {
msg_ts("Obtaining rocksdb checkpoint lock.\n"); msg("Obtaining rocksdb checkpoint lock.");
MYSQL_RES *res = MYSQL_RES *res =
xb_mysql_query(mysql_connection, "SELECT GET_LOCK('mariabackup_rocksdb_checkpoint',3600)", true, true); xb_mysql_query(mysql_connection, "SELECT GET_LOCK('mariabackup_rocksdb_checkpoint',3600)", true, true);
MYSQL_ROW r = mysql_fetch_row(res); MYSQL_ROW r = mysql_fetch_row(res);
if (r && r[0] && strcmp(r[0], "1")) if (r && r[0] && strcmp(r[0], "1"))
{ {
msg_ts("Could not obtain rocksdb checkpont lock\n"); msg("Could not obtain rocksdb checkpont lock.");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
mysql_free_result(res); mysql_free_result(res);
...@@ -2311,7 +2300,7 @@ static void rocksdb_create_checkpoint() ...@@ -2311,7 +2300,7 @@ static void rocksdb_create_checkpoint()
if (!access(rocksdb_checkpoint_dir, 0)) if (!access(rocksdb_checkpoint_dir, 0))
{ {
msg_ts("Removing rocksdb checkpoint from previous backup attempt.\n"); msg("Removing rocksdb checkpoint from previous backup attempt.");
rocksdb_remove_checkpoint_directory(); rocksdb_remove_checkpoint_directory();
} }
...@@ -2327,14 +2316,14 @@ static void rocksdb_create_checkpoint() ...@@ -2327,14 +2316,14 @@ static void rocksdb_create_checkpoint()
*/ */
static void rocksdb_backup_checkpoint() static void rocksdb_backup_checkpoint()
{ {
msg_ts("Backing up rocksdb files.\n"); msg("Backing up rocksdb files.");
char rocksdb_backup_dir[FN_REFLEN]; char rocksdb_backup_dir[FN_REFLEN];
snprintf(rocksdb_backup_dir, sizeof(rocksdb_backup_dir), "%s/" ROCKSDB_BACKUP_DIR , xtrabackup_target_dir); snprintf(rocksdb_backup_dir, sizeof(rocksdb_backup_dir), "%s/" ROCKSDB_BACKUP_DIR , xtrabackup_target_dir);
bool backup_to_directory = xtrabackup_backup && xtrabackup_stream_fmt == XB_STREAM_FMT_NONE; bool backup_to_directory = xtrabackup_backup && xtrabackup_stream_fmt == XB_STREAM_FMT_NONE;
if (backup_to_directory) if (backup_to_directory)
{ {
if (my_mkdir(rocksdb_backup_dir, 0777, MYF(0))){ if (my_mkdir(rocksdb_backup_dir, 0777, MYF(0))){
msg_ts("Can't create rocksdb backup directory %s\n", rocksdb_backup_dir); msg("Can't create rocksdb backup directory %s", rocksdb_backup_dir);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
......
...@@ -104,7 +104,7 @@ xb_mysql_connect() ...@@ -104,7 +104,7 @@ xb_mysql_connect()
sprintf(mysql_port_str, "%d", opt_port); sprintf(mysql_port_str, "%d", opt_port);
if (connection == NULL) { if (connection == NULL) {
msg("Failed to init MySQL struct: %s.\n", msg("Failed to init MySQL struct: %s.",
mysql_error(connection)); mysql_error(connection));
return(NULL); return(NULL);
} }
...@@ -120,8 +120,8 @@ xb_mysql_connect() ...@@ -120,8 +120,8 @@ xb_mysql_connect()
mysql_options(connection, MYSQL_OPT_PROTOCOL, &opt_protocol); mysql_options(connection, MYSQL_OPT_PROTOCOL, &opt_protocol);
mysql_options(connection,MYSQL_SET_CHARSET_NAME, "utf8"); mysql_options(connection,MYSQL_SET_CHARSET_NAME, "utf8");
msg_ts("Connecting to MySQL server host: %s, user: %s, password: %s, " msg("Connecting to MySQL server host: %s, user: %s, password: %s, "
"port: %s, socket: %s\n", opt_host ? opt_host : "localhost", "port: %s, socket: %s", opt_host ? opt_host : "localhost",
opt_user ? opt_user : "not set", opt_user ? opt_user : "not set",
opt_password ? "set" : "not set", opt_password ? "set" : "not set",
opt_port != 0 ? mysql_port_str : "not set", opt_port != 0 ? mysql_port_str : "not set",
...@@ -147,8 +147,7 @@ xb_mysql_connect() ...@@ -147,8 +147,7 @@ xb_mysql_connect()
opt_password, opt_password,
"" /*database*/, opt_port, "" /*database*/, opt_port,
opt_socket, 0)) { opt_socket, 0)) {
msg("Failed to connect to MySQL server: %s.\n", msg("Failed to connect to MySQL server: %s.", mysql_error(connection));
mysql_error(connection));
mysql_close(connection); mysql_close(connection);
return(NULL); return(NULL);
} }
...@@ -168,8 +167,7 @@ xb_mysql_query(MYSQL *connection, const char *query, bool use_result, ...@@ -168,8 +167,7 @@ xb_mysql_query(MYSQL *connection, const char *query, bool use_result,
MYSQL_RES *mysql_result = NULL; MYSQL_RES *mysql_result = NULL;
if (mysql_query(connection, query)) { if (mysql_query(connection, query)) {
msg("Error: failed to execute query %s: %s\n", query, msg("Error: failed to execute query %s: %s", query, mysql_error(connection));
mysql_error(connection));
if (die_on_error) { if (die_on_error) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -179,7 +177,7 @@ xb_mysql_query(MYSQL *connection, const char *query, bool use_result, ...@@ -179,7 +177,7 @@ xb_mysql_query(MYSQL *connection, const char *query, bool use_result,
/* store result set on client if there is a result */ /* store result set on client if there is a result */
if (mysql_field_count(connection) > 0) { if (mysql_field_count(connection) > 0) {
if ((mysql_result = mysql_store_result(connection)) == NULL) { if ((mysql_result = mysql_store_result(connection)) == NULL) {
msg("Error: failed to fetch query result %s: %s\n", msg("Error: failed to fetch query result %s: %s",
query, mysql_error(connection)); query, mysql_error(connection));
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -316,11 +314,11 @@ check_server_version(unsigned long version_number, ...@@ -316,11 +314,11 @@ check_server_version(unsigned long version_number,
msg("Error: Built-in InnoDB in MySQL 5.1 is not " msg("Error: Built-in InnoDB in MySQL 5.1 is not "
"supported in this release. You can either use " "supported in this release. You can either use "
"Percona XtraBackup 2.0, or upgrade to InnoDB " "Percona XtraBackup 2.0, or upgrade to InnoDB "
"plugin.\n"); "plugin.");
} else if (!version_supported) { } else if (!version_supported) {
msg("Error: Unsupported server version: '%s'. Please " msg("Error: Unsupported server version: '%s'. Please "
"report a bug at " "report a bug at "
"https://bugs.launchpad.net/percona-xtrabackup\n", "https://bugs.launchpad.net/percona-xtrabackup",
version_string); version_string);
} }
...@@ -407,7 +405,7 @@ get_mysql_vars(MYSQL *connection) ...@@ -407,7 +405,7 @@ get_mysql_vars(MYSQL *connection)
opt_binlog_info == BINLOG_INFO_LOCKLESS) { opt_binlog_info == BINLOG_INFO_LOCKLESS) {
msg("Error: --binlog-info=LOCKLESS is not supported by the " msg("Error: --binlog-info=LOCKLESS is not supported by the "
"server\n"); "server");
return(false); return(false);
} }
...@@ -445,7 +443,7 @@ get_mysql_vars(MYSQL *connection) ...@@ -445,7 +443,7 @@ get_mysql_vars(MYSQL *connection)
have_gtid_slave = true; have_gtid_slave = true;
} }
msg("Using server version %s\n", version_var); msg("Using server version %s", version_var);
if (!(ret = detect_mysql_capabilities_for_backup())) { if (!(ret = detect_mysql_capabilities_for_backup())) {
goto out; goto out;
...@@ -455,17 +453,17 @@ get_mysql_vars(MYSQL *connection) ...@@ -455,17 +453,17 @@ get_mysql_vars(MYSQL *connection)
if (check_if_param_set("datadir")) { if (check_if_param_set("datadir")) {
if (!directory_exists(mysql_data_home, false)) { if (!directory_exists(mysql_data_home, false)) {
msg("Warning: option 'datadir' points to " msg("Warning: option 'datadir' points to "
"nonexistent directory '%s'\n", mysql_data_home); "nonexistent directory '%s'", mysql_data_home);
} }
if (!directory_exists(datadir_var, false)) { if (!directory_exists(datadir_var, false)) {
msg("Warning: MySQL variable 'datadir' points to " msg("Warning: MySQL variable 'datadir' points to "
"nonexistent directory '%s'\n", datadir_var); "nonexistent directory '%s'", datadir_var);
} }
if (!equal_paths(mysql_data_home, datadir_var)) { if (!equal_paths(mysql_data_home, datadir_var)) {
msg("Warning: option 'datadir' has different " msg("Warning: option 'datadir' has different "
"values:\n" "values:\n"
" '%s' in defaults file\n" " '%s' in defaults file\n"
" '%s' in SHOW VARIABLES\n", " '%s' in SHOW VARIABLES",
mysql_data_home, datadir_var); mysql_data_home, datadir_var);
} }
} }
...@@ -564,14 +562,14 @@ detect_mysql_capabilities_for_backup() ...@@ -564,14 +562,14 @@ detect_mysql_capabilities_for_backup()
if (opt_galera_info && !have_galera_enabled) { if (opt_galera_info && !have_galera_enabled) {
msg("--galera-info is specified on the command " msg("--galera-info is specified on the command "
"line, but the server does not support Galera " "line, but the server does not support Galera "
"replication. Ignoring the option.\n"); "replication. Ignoring the option.");
opt_galera_info = false; opt_galera_info = false;
} }
if (opt_slave_info && have_multi_threaded_slave && if (opt_slave_info && have_multi_threaded_slave &&
!have_gtid_slave) { !have_gtid_slave) {
msg("The --slave-info option requires GTID enabled for a " msg("The --slave-info option requires GTID enabled for a "
"multi-threaded slave.\n"); "multi-threaded slave.");
return(false); return(false);
} }
...@@ -618,7 +616,7 @@ select_incremental_lsn_from_history(lsn_t *incremental_lsn) ...@@ -618,7 +616,7 @@ select_incremental_lsn_from_history(lsn_t *incremental_lsn)
const MYSQL_ROW row = mysql_fetch_row(mysql_result); const MYSQL_ROW row = mysql_fetch_row(mysql_result);
if (row) { if (row) {
*incremental_lsn = strtoull(row[0], NULL, 10); *incremental_lsn = strtoull(row[0], NULL, 10);
msg("Found and using lsn: " LSN_PF " for %s %s\n", msg("Found and using lsn: " LSN_PF " for %s %s",
*incremental_lsn, *incremental_lsn,
opt_incremental_history_uuid ? "uuid" : "name", opt_incremental_history_uuid ? "uuid" : "name",
opt_incremental_history_uuid ? opt_incremental_history_uuid ?
...@@ -626,7 +624,7 @@ select_incremental_lsn_from_history(lsn_t *incremental_lsn) ...@@ -626,7 +624,7 @@ select_incremental_lsn_from_history(lsn_t *incremental_lsn)
opt_incremental_history_name); opt_incremental_history_name);
} else { } else {
msg("Error while attempting to find history record " msg("Error while attempting to find history record "
"for %s %s\n", "for %s %s",
opt_incremental_history_uuid ? "uuid" : "name", opt_incremental_history_uuid ? "uuid" : "name",
opt_incremental_history_uuid ? opt_incremental_history_uuid ?
opt_incremental_history_uuid : opt_incremental_history_uuid :
...@@ -736,7 +734,7 @@ have_queries_to_wait_for(MYSQL *connection, uint threshold) ...@@ -736,7 +734,7 @@ have_queries_to_wait_for(MYSQL *connection, uint threshold)
&& duration >= (int)threshold && duration >= (int)threshold
&& ((all_queries && is_query(info)) && ((all_queries && is_query(info))
|| is_update_query(info))) { || is_update_query(info))) {
msg_ts("Waiting for query %s (duration %d sec): %s", msg("Waiting for query %s (duration %d sec): %s",
id, duration, info); id, duration, info);
have_to_wait = true; have_to_wait = true;
break; break;
...@@ -765,7 +763,7 @@ kill_long_queries(MYSQL *connection, time_t timeout) ...@@ -765,7 +763,7 @@ kill_long_queries(MYSQL *connection, time_t timeout)
(time_t)duration >= timeout && (time_t)duration >= timeout &&
((all_queries && is_query(info)) || ((all_queries && is_query(info)) ||
is_select_query(info))) { is_select_query(info))) {
msg_ts("Killing query %s (duration %d sec): %s\n", msg("Killing query %s (duration %d sec): %s",
id, (int)duration, info); id, (int)duration, info);
snprintf(kill_stmt, sizeof(kill_stmt), snprintf(kill_stmt, sizeof(kill_stmt),
"KILL %s", id); "KILL %s", id);
...@@ -784,8 +782,8 @@ wait_for_no_updates(MYSQL *connection, uint timeout, uint threshold) ...@@ -784,8 +782,8 @@ wait_for_no_updates(MYSQL *connection, uint timeout, uint threshold)
start_time = time(NULL); start_time = time(NULL);
msg_ts("Waiting %u seconds for queries running longer than %u seconds " msg("Waiting %u seconds for queries running longer than %u seconds "
"to finish\n", timeout, threshold); "to finish", timeout, threshold);
while (time(NULL) <= (time_t)(start_time + timeout)) { while (time(NULL) <= (time_t)(start_time + timeout)) {
if (!have_queries_to_wait_for(connection, threshold)) { if (!have_queries_to_wait_for(connection, threshold)) {
...@@ -794,7 +792,7 @@ wait_for_no_updates(MYSQL *connection, uint timeout, uint threshold) ...@@ -794,7 +792,7 @@ wait_for_no_updates(MYSQL *connection, uint timeout, uint threshold)
os_thread_sleep(1000000); os_thread_sleep(1000000);
} }
msg_ts("Unable to obtain lock. Please try again later."); msg("Unable to obtain lock. Please try again later.");
return(false); return(false);
} }
...@@ -812,7 +810,7 @@ kill_query_thread( ...@@ -812,7 +810,7 @@ kill_query_thread(
os_event_set(kill_query_thread_started); os_event_set(kill_query_thread_started);
msg_ts("Kill query timeout %d seconds.\n", msg("Kill query timeout %d seconds.",
opt_kill_long_queries_timeout); opt_kill_long_queries_timeout);
while (time(NULL) - start_time < while (time(NULL) - start_time <
...@@ -824,7 +822,7 @@ kill_query_thread( ...@@ -824,7 +822,7 @@ kill_query_thread(
} }
if ((mysql = xb_mysql_connect()) == NULL) { if ((mysql = xb_mysql_connect()) == NULL) {
msg("Error: kill query thread failed\n"); msg("Error: kill query thread failed");
goto stop_thread; goto stop_thread;
} }
...@@ -839,7 +837,7 @@ kill_query_thread( ...@@ -839,7 +837,7 @@ kill_query_thread(
mysql_close(mysql); mysql_close(mysql);
stop_thread: stop_thread:
msg_ts("Kill query thread stopped\n"); msg("Kill query thread stopped");
os_event_set(kill_query_thread_stopped); os_event_set(kill_query_thread_stopped);
...@@ -889,7 +887,7 @@ DECLARE_THREAD(kill_mdl_waiters_thread(void *)) ...@@ -889,7 +887,7 @@ DECLARE_THREAD(kill_mdl_waiters_thread(void *))
{ {
MYSQL *mysql; MYSQL *mysql;
if ((mysql = xb_mysql_connect()) == NULL) { if ((mysql = xb_mysql_connect()) == NULL) {
msg("Error: kill mdl waiters thread failed to connect\n"); msg("Error: kill mdl waiters thread failed to connect");
goto stop_thread; goto stop_thread;
} }
...@@ -908,11 +906,11 @@ DECLARE_THREAD(kill_mdl_waiters_thread(void *)) ...@@ -908,11 +906,11 @@ DECLARE_THREAD(kill_mdl_waiters_thread(void *))
if (row[1] && !strcmp(row[1], "Killed")) if (row[1] && !strcmp(row[1], "Killed"))
continue; continue;
msg_ts("Killing MDL waiting %s ('%s') on connection %s\n", msg("Killing MDL waiting %s ('%s') on connection %s",
row[1], row[2], row[0]); row[1], row[2], row[0]);
snprintf(query, sizeof(query), "KILL QUERY %s", row[0]); snprintf(query, sizeof(query), "KILL QUERY %s", row[0]);
if (mysql_query(mysql, query) && (mysql_errno(mysql) != ER_NO_SUCH_THREAD)) { if (mysql_query(mysql, query) && (mysql_errno(mysql) != ER_NO_SUCH_THREAD)) {
msg("Error: failed to execute query %s: %s\n", query,mysql_error(mysql)); msg("Error: failed to execute query %s: %s", query,mysql_error(mysql));
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
...@@ -922,7 +920,7 @@ DECLARE_THREAD(kill_mdl_waiters_thread(void *)) ...@@ -922,7 +920,7 @@ DECLARE_THREAD(kill_mdl_waiters_thread(void *))
mysql_close(mysql); mysql_close(mysql);
stop_thread: stop_thread:
msg_ts("Kill mdl waiters thread stopped\n"); msg("Kill mdl waiters thread stopped");
os_event_set(mdl_killer_finished_event); os_event_set(mdl_killer_finished_event);
os_thread_exit(); os_thread_exit();
return os_thread_ret_t(0); return os_thread_ret_t(0);
...@@ -964,7 +962,7 @@ lock_tables(MYSQL *connection) ...@@ -964,7 +962,7 @@ lock_tables(MYSQL *connection)
} }
if (have_backup_locks) { if (have_backup_locks) {
msg_ts("Executing LOCK TABLES FOR BACKUP...\n"); msg("Executing LOCK TABLES FOR BACKUP...");
xb_mysql_query(connection, "LOCK TABLES FOR BACKUP", false); xb_mysql_query(connection, "LOCK TABLES FOR BACKUP", false);
return(true); return(true);
} }
...@@ -987,7 +985,7 @@ lock_tables(MYSQL *connection) ...@@ -987,7 +985,7 @@ lock_tables(MYSQL *connection)
compatible with this trick. compatible with this trick.
*/ */
msg_ts("Executing FLUSH NO_WRITE_TO_BINLOG TABLES...\n"); msg("Executing FLUSH NO_WRITE_TO_BINLOG TABLES...");
xb_mysql_query(connection, xb_mysql_query(connection,
"FLUSH NO_WRITE_TO_BINLOG TABLES", false); "FLUSH NO_WRITE_TO_BINLOG TABLES", false);
...@@ -1000,7 +998,7 @@ lock_tables(MYSQL *connection) ...@@ -1000,7 +998,7 @@ lock_tables(MYSQL *connection)
} }
} }
msg_ts("Executing FLUSH TABLES WITH READ LOCK...\n"); msg("Executing FLUSH TABLES WITH READ LOCK...");
if (opt_kill_long_queries_timeout) { if (opt_kill_long_queries_timeout) {
start_query_killer(); start_query_killer();
...@@ -1033,7 +1031,7 @@ bool ...@@ -1033,7 +1031,7 @@ bool
lock_binlog_maybe(MYSQL *connection) lock_binlog_maybe(MYSQL *connection)
{ {
if (have_backup_locks && !opt_no_lock && !binlog_locked) { if (have_backup_locks && !opt_no_lock && !binlog_locked) {
msg_ts("Executing LOCK BINLOG FOR BACKUP...\n"); msg("Executing LOCK BINLOG FOR BACKUP...");
xb_mysql_query(connection, "LOCK BINLOG FOR BACKUP", false); xb_mysql_query(connection, "LOCK BINLOG FOR BACKUP", false);
binlog_locked = true; binlog_locked = true;
...@@ -1052,20 +1050,20 @@ void ...@@ -1052,20 +1050,20 @@ void
unlock_all(MYSQL *connection) unlock_all(MYSQL *connection)
{ {
if (opt_debug_sleep_before_unlock) { if (opt_debug_sleep_before_unlock) {
msg_ts("Debug sleep for %u seconds\n", msg("Debug sleep for %u seconds",
opt_debug_sleep_before_unlock); opt_debug_sleep_before_unlock);
os_thread_sleep(opt_debug_sleep_before_unlock * 1000); os_thread_sleep(opt_debug_sleep_before_unlock * 1000);
} }
if (binlog_locked) { if (binlog_locked) {
msg_ts("Executing UNLOCK BINLOG\n"); msg("Executing UNLOCK BINLOG");
xb_mysql_query(connection, "UNLOCK BINLOG", false); xb_mysql_query(connection, "UNLOCK BINLOG", false);
} }
msg_ts("Executing UNLOCK TABLES\n"); msg("Executing UNLOCK TABLES");
xb_mysql_query(connection, "UNLOCK TABLES", false); xb_mysql_query(connection, "UNLOCK TABLES", false);
msg_ts("All tables unlocked\n"); msg("All tables unlocked");
} }
...@@ -1116,7 +1114,7 @@ wait_for_safe_slave(MYSQL *connection) ...@@ -1116,7 +1114,7 @@ wait_for_safe_slave(MYSQL *connection)
if (!(read_master_log_pos && slave_sql_running)) { if (!(read_master_log_pos && slave_sql_running)) {
msg("Not checking slave open temp tables for " msg("Not checking slave open temp tables for "
"--safe-slave-backup because host is not a slave\n"); "--safe-slave-backup because host is not a slave");
goto cleanup; goto cleanup;
} }
...@@ -1130,36 +1128,36 @@ wait_for_safe_slave(MYSQL *connection) ...@@ -1130,36 +1128,36 @@ wait_for_safe_slave(MYSQL *connection)
} }
open_temp_tables = get_open_temp_tables(connection); open_temp_tables = get_open_temp_tables(connection);
msg_ts("Slave open temp tables: %d\n", open_temp_tables); msg("Slave open temp tables: %d", open_temp_tables);
while (open_temp_tables && n_attempts--) { while (open_temp_tables && n_attempts--) {
msg_ts("Starting slave SQL thread, waiting %d seconds, then " msg("Starting slave SQL thread, waiting %d seconds, then "
"checking Slave_open_temp_tables again (%d attempts " "checking Slave_open_temp_tables again (%d attempts "
"remaining)...\n", sleep_time, n_attempts); "remaining)...", sleep_time, n_attempts);
xb_mysql_query(connection, "START SLAVE SQL_THREAD", false); xb_mysql_query(connection, "START SLAVE SQL_THREAD", false);
os_thread_sleep(sleep_time * 1000000); os_thread_sleep(sleep_time * 1000000);
xb_mysql_query(connection, "STOP SLAVE SQL_THREAD", false); xb_mysql_query(connection, "STOP SLAVE SQL_THREAD", false);
open_temp_tables = get_open_temp_tables(connection); open_temp_tables = get_open_temp_tables(connection);
msg_ts("Slave open temp tables: %d\n", open_temp_tables); msg("Slave open temp tables: %d", open_temp_tables);
} }
/* Restart the slave if it was running at start */ /* Restart the slave if it was running at start */
if (open_temp_tables == 0) { if (open_temp_tables == 0) {
msg_ts("Slave is safe to backup\n"); msg("Slave is safe to backup");
goto cleanup; goto cleanup;
} }
result = false; result = false;
if (sql_thread_started) { if (sql_thread_started) {
msg_ts("Restarting slave SQL thread.\n"); msg("Restarting slave SQL thread.");
xb_mysql_query(connection, "START SLAVE SQL_THREAD", false); xb_mysql_query(connection, "START SLAVE SQL_THREAD", false);
} }
msg_ts("Slave_open_temp_tables did not become zero after " msg("Slave_open_temp_tables did not become zero after "
"%d seconds\n", opt_safe_slave_backup_timeout); "%d seconds", opt_safe_slave_backup_timeout);
cleanup: cleanup:
free_mysql_variables(status); free_mysql_variables(status);
...@@ -1201,10 +1199,8 @@ write_slave_info(MYSQL *connection) ...@@ -1201,10 +1199,8 @@ write_slave_info(MYSQL *connection)
if (master == NULL || filename == NULL || position == NULL) { if (master == NULL || filename == NULL || position == NULL) {
msg("Failed to get master binlog coordinates " msg("Failed to get master binlog coordinates "
"from SHOW SLAVE STATUS\n"); "from SHOW SLAVE STATUS.This means that the server is not a "
msg("This means that the server is not a " "replication slave. Ignoring the --slave-info option");
"replication slave. Ignoring the --slave-info "
"option\n");
/* we still want to continue the backup */ /* we still want to continue the backup */
result = true; result = true;
goto cleanup; goto cleanup;
...@@ -1287,7 +1283,7 @@ write_galera_info(MYSQL *connection) ...@@ -1287,7 +1283,7 @@ write_galera_info(MYSQL *connection)
if ((state_uuid == NULL && state_uuid55 == NULL) if ((state_uuid == NULL && state_uuid55 == NULL)
|| (last_committed == NULL && last_committed55 == NULL)) { || (last_committed == NULL && last_committed55 == NULL)) {
msg("Failed to get master wsrep state from SHOW STATUS.\n"); msg("Failed to get master wsrep state from SHOW STATUS.");
result = false; result = false;
goto cleanup; goto cleanup;
} }
...@@ -1800,9 +1796,9 @@ mdl_lock_table(ulint space_id) ...@@ -1800,9 +1796,9 @@ mdl_lock_table(ulint space_id)
std::ostringstream lock_query; std::ostringstream lock_query;
lock_query << "SELECT 1 FROM " << full_table_name << " LIMIT 0"; lock_query << "SELECT 1 FROM " << full_table_name << " LIMIT 0";
msg_ts("Locking MDL for %s\n", full_table_name.c_str()); msg("Locking MDL for %s", full_table_name.c_str());
if (mysql_query(mdl_con, lock_query.str().c_str())) { if (mysql_query(mdl_con, lock_query.str().c_str())) {
msg_ts("Warning : locking MDL failed for space id %zu, name %s\n", space_id, full_table_name.c_str()); msg("Warning : locking MDL failed for space id %zu, name %s", space_id, full_table_name.c_str());
} else { } else {
MYSQL_RES *r = mysql_store_result(mdl_con); MYSQL_RES *r = mysql_store_result(mdl_con);
mysql_free_result(r); mysql_free_result(r);
...@@ -1812,7 +1808,7 @@ mdl_lock_table(ulint space_id) ...@@ -1812,7 +1808,7 @@ mdl_lock_table(ulint space_id)
void void
mdl_unlock_all() mdl_unlock_all()
{ {
msg_ts("Unlocking MDL for all tables\n"); msg("Unlocking MDL for all tables");
xb_mysql_query(mdl_con, "COMMIT", false, true); xb_mysql_query(mdl_con, "COMMIT", false, true);
mysql_close(mdl_con); mysql_close(mdl_con);
spaceid_to_tablename.clear(); spaceid_to_tablename.clear();
......
...@@ -202,7 +202,7 @@ log_online_read_bitmap_page( ...@@ -202,7 +202,7 @@ log_online_read_bitmap_page(
/* The following call prints an error message */ /* The following call prints an error message */
os_file_get_last_error(TRUE); os_file_get_last_error(TRUE);
msg("InnoDB: Warning: failed reading changed page bitmap " msg("InnoDB: Warning: failed reading changed page bitmap "
"file \'%s\'\n", bitmap_file->name); "file \'%s\'", bitmap_file->name);
return FALSE; return FALSE;
} }
...@@ -281,7 +281,7 @@ log_online_setup_bitmap_file_range( ...@@ -281,7 +281,7 @@ log_online_setup_bitmap_file_range(
bitmap_dir = os_file_opendir(srv_data_home, FALSE); bitmap_dir = os_file_opendir(srv_data_home, FALSE);
if (UNIV_UNLIKELY(!bitmap_dir)) { if (UNIV_UNLIKELY(!bitmap_dir)) {
msg("InnoDB: Error: failed to open bitmap directory \'%s\'\n", msg("InnoDB: Error: failed to open bitmap directory \'%s\'",
srv_data_home); srv_data_home);
return FALSE; return FALSE;
} }
...@@ -331,7 +331,7 @@ log_online_setup_bitmap_file_range( ...@@ -331,7 +331,7 @@ log_online_setup_bitmap_file_range(
if (UNIV_UNLIKELY(os_file_closedir(bitmap_dir))) { if (UNIV_UNLIKELY(os_file_closedir(bitmap_dir))) {
os_file_get_last_error(TRUE); os_file_get_last_error(TRUE);
msg("InnoDB: Error: cannot close \'%s\'\n",srv_data_home); msg("InnoDB: Error: cannot close \'%s\'",srv_data_home);
return FALSE; return FALSE;
} }
...@@ -348,7 +348,7 @@ log_online_setup_bitmap_file_range( ...@@ -348,7 +348,7 @@ log_online_setup_bitmap_file_range(
bitmap_dir = os_file_opendir(srv_data_home, FALSE); bitmap_dir = os_file_opendir(srv_data_home, FALSE);
if (UNIV_UNLIKELY(!bitmap_dir)) { if (UNIV_UNLIKELY(!bitmap_dir)) {
msg("InnoDB: Error: failed to open bitmap directory \'%s\'\n", msg("InnoDB: Error: failed to open bitmap directory \'%s\'",
srv_data_home); srv_data_home);
return FALSE; return FALSE;
} }
...@@ -379,7 +379,7 @@ log_online_setup_bitmap_file_range( ...@@ -379,7 +379,7 @@ log_online_setup_bitmap_file_range(
if (UNIV_UNLIKELY(array_pos >= bitmap_files->count)) { if (UNIV_UNLIKELY(array_pos >= bitmap_files->count)) {
msg("InnoDB: Error: inconsistent bitmap file " msg("InnoDB: Error: inconsistent bitmap file "
"directory\n"); "directory");
free(bitmap_files->files); free(bitmap_files->files);
return FALSE; return FALSE;
} }
...@@ -399,7 +399,7 @@ log_online_setup_bitmap_file_range( ...@@ -399,7 +399,7 @@ log_online_setup_bitmap_file_range(
if (UNIV_UNLIKELY(os_file_closedir(bitmap_dir))) { if (UNIV_UNLIKELY(os_file_closedir(bitmap_dir))) {
os_file_get_last_error(TRUE); os_file_get_last_error(TRUE);
msg("InnoDB: Error: cannot close \'%s\'\n", srv_data_home); msg("InnoDB: Error: cannot close \'%s\'", srv_data_home);
free(bitmap_files->files); free(bitmap_files->files);
return FALSE; return FALSE;
} }
...@@ -450,7 +450,7 @@ log_online_open_bitmap_file_read_only( ...@@ -450,7 +450,7 @@ log_online_open_bitmap_file_read_only(
/* Here and below assume that bitmap file names do not /* Here and below assume that bitmap file names do not
contain apostrophes, thus no need for ut_print_filename(). */ contain apostrophes, thus no need for ut_print_filename(). */
msg("InnoDB: Warning: error opening the changed page " msg("InnoDB: Warning: error opening the changed page "
"bitmap \'%s\'\n", bitmap_file->name); "bitmap \'%s\'", bitmap_file->name);
return success; return success;
} }
...@@ -494,7 +494,7 @@ log_online_diagnose_bitmap_eof( ...@@ -494,7 +494,7 @@ log_online_diagnose_bitmap_eof(
itself. */ itself. */
msg("InnoDB: Warning: junk at the end of changed " msg("InnoDB: Warning: junk at the end of changed "
"page bitmap file \'%s\'.\n", bitmap_file->name); "page bitmap file \'%s\'.", bitmap_file->name);
} }
if (UNIV_UNLIKELY(!last_page_in_run)) { if (UNIV_UNLIKELY(!last_page_in_run)) {
...@@ -505,7 +505,7 @@ log_online_diagnose_bitmap_eof( ...@@ -505,7 +505,7 @@ log_online_diagnose_bitmap_eof(
for the whole server */ for the whole server */
msg("InnoDB: Warning: changed page bitmap " msg("InnoDB: Warning: changed page bitmap "
"file \'%s\' does not contain a complete run " "file \'%s\' does not contain a complete run "
"at the end.\n", bitmap_file->name); "at the end.", bitmap_file->name);
return FALSE; return FALSE;
} }
} }
...@@ -536,7 +536,7 @@ xb_msg_missing_lsn_data( ...@@ -536,7 +536,7 @@ xb_msg_missing_lsn_data(
lsn_t missing_interval_end) /*!<in: interval end */ lsn_t missing_interval_end) /*!<in: interval end */
{ {
msg("mariabackup: warning: changed page data missing for LSNs between " msg("mariabackup: warning: changed page data missing for LSNs between "
LSN_PF " and " LSN_PF "\n", missing_interval_start, LSN_PF " and " LSN_PF, missing_interval_start,
missing_interval_end); missing_interval_end);
} }
...@@ -614,7 +614,7 @@ xb_page_bitmap_init(void) ...@@ -614,7 +614,7 @@ xb_page_bitmap_init(void)
msg("mariabackup: incremental backup LSN " LSN_PF msg("mariabackup: incremental backup LSN " LSN_PF
" is larger than than the last checkpoint LSN " LSN_PF " is larger than than the last checkpoint LSN " LSN_PF
"\n", bmp_start_lsn, bmp_end_lsn); , bmp_start_lsn, bmp_end_lsn);
return NULL; return NULL;
} }
...@@ -698,7 +698,7 @@ xb_page_bitmap_init(void) ...@@ -698,7 +698,7 @@ xb_page_bitmap_init(void)
bmp_start_lsn))) { bmp_start_lsn))) {
msg("mariabackup: Warning: changed page bitmap file " msg("mariabackup: Warning: changed page bitmap file "
"\'%s\' corrupted\n", bitmap_file.name); "\'%s\' corrupted", bitmap_file.name);
rbt_free(result); rbt_free(result);
free(bitmap_files.files); free(bitmap_files.files);
os_file_close(bitmap_file.file); os_file_close(bitmap_file.file);
...@@ -803,7 +803,7 @@ xb_page_bitmap_init(void) ...@@ -803,7 +803,7 @@ xb_page_bitmap_init(void)
if (UNIV_UNLIKELY(!last_page_ok)) { if (UNIV_UNLIKELY(!last_page_ok)) {
msg("mariabackup: warning: changed page bitmap file " msg("mariabackup: warning: changed page bitmap file "
"\'%s\' corrupted.\n", bitmap_file.name); "\'%s\' corrupted.", bitmap_file.name);
rbt_free(result); rbt_free(result);
free(bitmap_files.files); free(bitmap_files.files);
os_file_close(bitmap_file.file); os_file_close(bitmap_file.file);
......
...@@ -72,7 +72,7 @@ static inline int asprintf(char **strp, const char *fmt,...) ...@@ -72,7 +72,7 @@ static inline int asprintf(char **strp, const char *fmt,...)
#define xb_a(expr) \ #define xb_a(expr) \
do { \ do { \
if (!(expr)) { \ if (!(expr)) { \
msg("Assertion \"%s\" failed at %s:%lu\n", \ fprintf(stderr,"Assertion \"%s\" failed at %s:%lu\n", \
#expr, __FILE__, (ulong) __LINE__); \ #expr, __FILE__, (ulong) __LINE__); \
abort(); \ abort(); \
} \ } \
...@@ -86,42 +86,48 @@ static inline int asprintf(char **strp, const char *fmt,...) ...@@ -86,42 +86,48 @@ static inline int asprintf(char **strp, const char *fmt,...)
#define XB_DELTA_INFO_SUFFIX ".meta" #define XB_DELTA_INFO_SUFFIX ".meta"
static inline int msg(const char *fmt, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
static inline int msg(const char *fmt, ...)
{
int result;
va_list args;
va_start(args, fmt);
result = vfprintf(stderr, fmt, args);
va_end(args);
return result; static inline int msg1(unsigned int thread_num, const char *fmt, ...) ATTRIBUTE_FORMAT(printf, 2, 3);
static inline int msg1(uint thread_num, const char *fmt, va_list args)
{
int result;
time_t t = time(NULL);
char date[100];
char *line;
strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S", localtime(&t));
result = vasprintf(&line, fmt, args);
if (result != -1) {
if (fmt && fmt[strlen(fmt)] != '\n')
result = fprintf(stderr, "[%02u] %s %s\n", thread_num, date, line);
else
result = fprintf(stderr, "[%02u] %s %s", thread_num, date, line);
free(line);
}
return result;
} }
static inline int msg(unsigned int, const char *fmt, ...) ATTRIBUTE_FORMAT(printf, 2, 3);
static inline int msg_ts(const char *fmt, ...) ATTRIBUTE_FORMAT(printf, 1, 2); static inline int msg(unsigned int thread_num, const char *fmt, ...)
static inline int msg_ts(const char *fmt, ...)
{ {
int result; int result;
time_t t = time(NULL); va_list args;
char date[100]; va_start(args, fmt);
char *line; result = msg1(thread_num, fmt, args);
va_list args; va_end(args);
return result;
strftime(date, sizeof(date), "%y%m%d %H:%M:%S", localtime(&t)); }
va_start(args, fmt);
result = vasprintf(&line, fmt, args);
va_end(args);
if (result != -1) {
result = fprintf(stderr, "%s %s", date, line);
free(line);
}
return result; static inline int msg(const char *fmt, ...) ATTRIBUTE_FORMAT(printf, 1, 2);
static inline int msg(const char *fmt, ...)
{
int result;
va_list args;
va_start(args, fmt);
result = msg1(0, fmt, args);
va_end(args);
return result;
} }
/* Use POSIX_FADV_NORMAL when available */ /* Use POSIX_FADV_NORMAL when available */
#ifdef POSIX_FADV_NORMAL #ifdef POSIX_FADV_NORMAL
......
...@@ -71,7 +71,7 @@ ds_create(const char *root, ds_type_t type) ...@@ -71,7 +71,7 @@ ds_create(const char *root, ds_type_t type)
ds = &datasink_buffer; ds = &datasink_buffer;
break; break;
default: default:
msg("Unknown datasink type: %d\n", type); msg("Unknown datasink type: %d", type);
xb_ad(0); xb_ad(0);
return NULL; return NULL;
} }
...@@ -80,7 +80,7 @@ ds_create(const char *root, ds_type_t type) ...@@ -80,7 +80,7 @@ ds_create(const char *root, ds_type_t type)
if (ctxt != NULL) { if (ctxt != NULL) {
ctxt->datasink = ds; ctxt->datasink = ds;
} else { } else {
msg("Error: failed to initialize datasink.\n"); msg("Error: failed to initialize datasink.");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
......
...@@ -71,7 +71,7 @@ buffer_init(const char *root) ...@@ -71,7 +71,7 @@ buffer_init(const char *root)
ds_ctxt_t *ctxt; ds_ctxt_t *ctxt;
ds_buffer_ctxt_t *buffer_ctxt; ds_buffer_ctxt_t *buffer_ctxt;
ctxt = my_malloc(sizeof(ds_ctxt_t) + sizeof(ds_buffer_ctxt_t), ctxt = (ds_ctxt_t *)my_malloc(sizeof(ds_ctxt_t) + sizeof(ds_buffer_ctxt_t),
MYF(MY_FAE)); MYF(MY_FAE));
buffer_ctxt = (ds_buffer_ctxt_t *) (ctxt + 1); buffer_ctxt = (ds_buffer_ctxt_t *) (ctxt + 1);
buffer_ctxt->buffer_size = DS_DEFAULT_BUFFER_SIZE; buffer_ctxt->buffer_size = DS_DEFAULT_BUFFER_SIZE;
......
...@@ -95,7 +95,7 @@ compress_init(const char *root) ...@@ -95,7 +95,7 @@ compress_init(const char *root)
/* Create and initialize the worker threads */ /* Create and initialize the worker threads */
threads = create_worker_threads(xtrabackup_compress_threads); threads = create_worker_threads(xtrabackup_compress_threads);
if (threads == NULL) { if (threads == NULL) {
msg("compress: failed to create worker threads.\n"); msg("compress: failed to create worker threads.");
return NULL; return NULL;
} }
...@@ -243,7 +243,7 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len) ...@@ -243,7 +243,7 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
write_uint64_le(dest_file, write_uint64_le(dest_file,
comp_file->bytes_processed)) { comp_file->bytes_processed)) {
msg("compress: write to the destination stream " msg("compress: write to the destination stream "
"failed.\n"); "failed.");
return 1; return 1;
} }
...@@ -253,7 +253,7 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len) ...@@ -253,7 +253,7 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
ds_write(dest_file, threads[i].to, ds_write(dest_file, threads[i].to,
threads[i].to_len)) { threads[i].to_len)) {
msg("compress: write to the destination stream " msg("compress: write to the destination stream "
"failed.\n"); "failed.");
return 1; return 1;
} }
...@@ -367,7 +367,7 @@ create_worker_threads(uint n) ...@@ -367,7 +367,7 @@ create_worker_threads(uint n)
if (pthread_create(&thd->id, NULL, compress_worker_thread_func, if (pthread_create(&thd->id, NULL, compress_worker_thread_func,
thd)) { thd)) {
msg("compress: pthread_create() failed: " msg("compress: pthread_create() failed: "
"errno = %d\n", errno); "errno = %d", errno);
goto err; goto err;
} }
} }
......
...@@ -48,7 +48,7 @@ stdout_init(const char *root) ...@@ -48,7 +48,7 @@ stdout_init(const char *root)
{ {
ds_ctxt_t *ctxt; ds_ctxt_t *ctxt;
ctxt = my_malloc(sizeof(ds_ctxt_t), MYF(MY_FAE)); ctxt = (ds_ctxt_t *)my_malloc(sizeof(ds_ctxt_t), MYF(MY_FAE));
ctxt->root = my_strdup(root, MYF(MY_FAE)); ctxt->root = my_strdup(root, MYF(MY_FAE));
......
...@@ -60,7 +60,7 @@ tmpfile_init(const char *root) ...@@ -60,7 +60,7 @@ tmpfile_init(const char *root)
ds_ctxt_t *ctxt; ds_ctxt_t *ctxt;
ds_tmpfile_ctxt_t *tmpfile_ctxt; ds_tmpfile_ctxt_t *tmpfile_ctxt;
ctxt = my_malloc(sizeof(ds_ctxt_t) + sizeof(ds_tmpfile_ctxt_t), ctxt = (ds_ctxt_t *)my_malloc(sizeof(ds_ctxt_t) + sizeof(ds_tmpfile_ctxt_t),
MYF(MY_FAE)); MYF(MY_FAE));
tmpfile_ctxt = (ds_tmpfile_ctxt_t *) (ctxt + 1); tmpfile_ctxt = (ds_tmpfile_ctxt_t *) (ctxt + 1);
tmpfile_ctxt->file_list = NULL; tmpfile_ctxt->file_list = NULL;
...@@ -191,11 +191,11 @@ tmpfile_deinit(ds_ctxt_t *ctxt) ...@@ -191,11 +191,11 @@ tmpfile_deinit(ds_ctxt_t *ctxt)
/* Walk the files in the order they have been added */ /* Walk the files in the order they have been added */
list = list_reverse(list); list = list_reverse(list);
while (list != NULL) { while (list != NULL) {
tmp_file = list->data; tmp_file = (ds_tmp_file_t *)list->data;
/* Stat the file to replace size and mtime on the original /* Stat the file to replace size and mtime on the original
* mystat struct */ * mystat struct */
if (my_fstat(tmp_file->fd, &mystat, MYF(0))) { if (my_fstat(tmp_file->fd, &mystat, MYF(0))) {
msg("error: my_fstat() failed.\n"); msg("error: my_fstat() failed.");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
tmp_file->mystat.st_size = mystat.st_size; tmp_file->mystat.st_size = mystat.st_size;
...@@ -205,7 +205,7 @@ tmpfile_deinit(ds_ctxt_t *ctxt) ...@@ -205,7 +205,7 @@ tmpfile_deinit(ds_ctxt_t *ctxt)
&tmp_file->mystat); &tmp_file->mystat);
if (dst_file == NULL) { if (dst_file == NULL) {
msg("error: could not stream a temporary file to " msg("error: could not stream a temporary file to "
"'%s'\n", tmp_file->orig_path); "'%s'", tmp_file->orig_path);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -213,17 +213,17 @@ tmpfile_deinit(ds_ctxt_t *ctxt) ...@@ -213,17 +213,17 @@ tmpfile_deinit(ds_ctxt_t *ctxt)
posix_fadvise(tmp_file->fd, 0, 0, POSIX_FADV_SEQUENTIAL); posix_fadvise(tmp_file->fd, 0, 0, POSIX_FADV_SEQUENTIAL);
if (my_seek(tmp_file->fd, 0, SEEK_SET, MYF(0)) == if (my_seek(tmp_file->fd, 0, SEEK_SET, MYF(0)) ==
MY_FILEPOS_ERROR) { MY_FILEPOS_ERROR) {
msg("error: my_seek() failed for '%s', errno = %d.\n", msg("error: my_seek() failed for '%s', errno = %d.",
tmp_file->file->path, my_errno); tmp_file->file->path, my_errno);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
offset = 0; offset = 0;
while ((bytes = my_read(tmp_file->fd, buf, buf_size, while ((bytes = my_read(tmp_file->fd, (unsigned char *)buf, buf_size,
MYF(MY_WME))) > 0) { MYF(MY_WME))) > 0) {
posix_fadvise(tmp_file->fd, offset, buf_size, POSIX_FADV_DONTNEED); posix_fadvise(tmp_file->fd, offset, buf_size, POSIX_FADV_DONTNEED);
offset += buf_size; offset += buf_size;
if (ds_write(dst_file, buf, bytes)) { if (ds_write(dst_file, buf, bytes)) {
msg("error: cannot write to stream for '%s'.\n", msg("error: cannot write to stream for '%s'.",
tmp_file->orig_path); tmp_file->orig_path);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
......
...@@ -79,18 +79,18 @@ xbstream_init(const char *root __attribute__((unused))) ...@@ -79,18 +79,18 @@ xbstream_init(const char *root __attribute__((unused)))
ds_stream_ctxt_t *stream_ctxt; ds_stream_ctxt_t *stream_ctxt;
xb_wstream_t *xbstream; xb_wstream_t *xbstream;
ctxt = my_malloc(sizeof(ds_ctxt_t) + sizeof(ds_stream_ctxt_t), ctxt = (ds_ctxt_t *)my_malloc(sizeof(ds_ctxt_t) + sizeof(ds_stream_ctxt_t),
MYF(MY_FAE)); MYF(MY_FAE));
stream_ctxt = (ds_stream_ctxt_t *)(ctxt + 1); stream_ctxt = (ds_stream_ctxt_t *)(ctxt + 1);
if (pthread_mutex_init(&stream_ctxt->mutex, NULL)) { if (pthread_mutex_init(&stream_ctxt->mutex, NULL)) {
msg("xbstream_init: pthread_mutex_init() failed.\n"); msg("xbstream_init: pthread_mutex_init() failed.");
goto err; goto err;
} }
xbstream = xb_stream_write_new(); xbstream = xb_stream_write_new();
if (xbstream == NULL) { if (xbstream == NULL) {
msg("xb_stream_write_new() failed.\n"); msg("xb_stream_write_new() failed.");
goto err; goto err;
} }
stream_ctxt->xbstream = xbstream; stream_ctxt->xbstream = xbstream;
...@@ -143,7 +143,7 @@ xbstream_open(ds_ctxt_t *ctxt, const char *path, MY_STAT *mystat) ...@@ -143,7 +143,7 @@ xbstream_open(ds_ctxt_t *ctxt, const char *path, MY_STAT *mystat)
my_xbstream_write_callback); my_xbstream_write_callback);
if (xbstream_file == NULL) { if (xbstream_file == NULL) {
msg("xb_stream_write_open() failed.\n"); msg("xb_stream_write_open() failed.");
goto err; goto err;
} }
...@@ -177,7 +177,7 @@ xbstream_write(ds_file_t *file, const uchar *buf, size_t len) ...@@ -177,7 +177,7 @@ xbstream_write(ds_file_t *file, const uchar *buf, size_t len)
xbstream_file = stream_file->xbstream_file; xbstream_file = stream_file->xbstream_file;
if (xb_stream_write_data(xbstream_file, buf, len)) { if (xb_stream_write_data(xbstream_file, buf, len)) {
msg("xb_stream_write_data() failed.\n"); msg("xb_stream_write_data() failed.");
return 1; return 1;
} }
...@@ -209,7 +209,7 @@ xbstream_deinit(ds_ctxt_t *ctxt) ...@@ -209,7 +209,7 @@ xbstream_deinit(ds_ctxt_t *ctxt)
stream_ctxt = (ds_stream_ctxt_t *) ctxt->ptr; stream_ctxt = (ds_stream_ctxt_t *) ctxt->ptr;
if (xb_stream_write_done(stream_ctxt->xbstream)) { if (xb_stream_write_done(stream_ctxt->xbstream)) {
msg("xb_stream_done() failed.\n"); msg("xb_stream_done() failed.");
} }
if (stream_ctxt->dest_file) { if (stream_ctxt->dest_file) {
......
...@@ -45,7 +45,7 @@ static std::string get_encryption_plugin_from_cnf() ...@@ -45,7 +45,7 @@ static std::string get_encryption_plugin_from_cnf()
FILE *f = fopen("backup-my.cnf", "r"); FILE *f = fopen("backup-my.cnf", "r");
if (!f) if (!f)
{ {
msg("cannot open backup-my.cnf for reading\n"); msg("Can't open backup-my.cnf for reading");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
char line[512]; char line[512];
...@@ -167,7 +167,7 @@ void encryption_plugin_prepare_init(int argc, char **argv) ...@@ -167,7 +167,7 @@ void encryption_plugin_prepare_init(int argc, char **argv)
std::string plugin_load= get_encryption_plugin_from_cnf(); std::string plugin_load= get_encryption_plugin_from_cnf();
if (plugin_load.size()) if (plugin_load.size())
{ {
msg("Loading encryption plugin from %s\n", plugin_load.c_str()); msg("Loading encryption plugin from %s", plugin_load.c_str());
} }
else else
{ {
...@@ -193,9 +193,9 @@ static void encryption_plugin_init(int argc, char **argv) ...@@ -193,9 +193,9 @@ static void encryption_plugin_init(int argc, char **argv)
{ {
/* Patch optional and mandatory plugins, we only need to load the one in xb_plugin_load. */ /* Patch optional and mandatory plugins, we only need to load the one in xb_plugin_load. */
mysql_optional_plugins[0] = mysql_mandatory_plugins[0] = 0; mysql_optional_plugins[0] = mysql_mandatory_plugins[0] = 0;
msg("Loading encryption plugin\n"); msg("Loading encryption plugin");
for (int i= 1; i < argc; i++) for (int i= 1; i < argc; i++)
msg("\t Encryption plugin parameter : '%s'\n", argv[i]); msg("\t Encryption plugin parameter : '%s'", argv[i]);
plugin_init(&argc, argv, PLUGIN_INIT_SKIP_PLUGIN_TABLE); plugin_init(&argc, argv, PLUGIN_INIT_SKIP_PLUGIN_TABLE);
} }
...@@ -174,9 +174,8 @@ xb_fil_cur_open( ...@@ -174,9 +174,8 @@ xb_fil_cur_open(
/* The following call prints an error message */ /* The following call prints an error message */
os_file_get_last_error(TRUE); os_file_get_last_error(TRUE);
msg("[%02u] mariabackup: error: cannot open " msg(thread_n, "mariabackup: error: cannot open "
"tablespace %s\n", "tablespace %s", cursor->abs_path);
thread_n, cursor->abs_path);
return(XB_FIL_CUR_SKIP); return(XB_FIL_CUR_SKIP);
} }
...@@ -217,8 +216,8 @@ xb_fil_cur_open( ...@@ -217,8 +216,8 @@ xb_fil_cur_open(
cursor->statinfo.st_size = (ulonglong)max_file_size; cursor->statinfo.st_size = (ulonglong)max_file_size;
} }
if (err) { if (err) {
msg("[%02u] mariabackup: error: cannot fstat %s\n", msg(thread_n, "mariabackup: error: cannot fstat %s",
thread_n, cursor->abs_path); cursor->abs_path);
xb_fil_cur_close(cursor); xb_fil_cur_close(cursor);
...@@ -262,8 +261,6 @@ xb_fil_cur_open( ...@@ -262,8 +261,6 @@ xb_fil_cur_open(
mutex_exit(&fil_system->mutex); mutex_exit(&fil_system->mutex);
} }
/*msg("crypt: %s,%u\n", node->name, node->space->crypt_data->type);*/
cursor->space_size = (ulint)(cursor->statinfo.st_size cursor->space_size = (ulint)(cursor->statinfo.st_size
/ page_size.physical()); / page_size.physical());
...@@ -413,14 +410,8 @@ xb_fil_cur_read( ...@@ -413,14 +410,8 @@ xb_fil_cur_read(
&& offset + to_read == cursor->statinfo.st_size) { && offset + to_read == cursor->statinfo.st_size) {
if (to_read < (ib_int64_t) page_size) { if (to_read < (ib_int64_t) page_size) {
msg("[%02u] mariabackup: Warning: junk at the end of " msg(cursor->thread_n, "Warning: junk at the end of "
"%s:\n", cursor->thread_n, cursor->abs_path); "%s, offset = %llu, to_read = %llu",cursor->abs_path, (ulonglong) offset, (ulonglong) to_read);
msg("[%02u] mariabackup: Warning: offset = %llu, "
"to_read = %llu\n",
cursor->thread_n,
(unsigned long long) offset,
(unsigned long long) to_read);
return(XB_FIL_CUR_EOF); return(XB_FIL_CUR_EOF);
} }
...@@ -464,20 +455,17 @@ xb_fil_cur_read( ...@@ -464,20 +455,17 @@ xb_fil_cur_read(
retry_count--; retry_count--;
if (retry_count == 0) { if (retry_count == 0) {
msg("[%02u] mariabackup: " msg(cursor->thread_n,
"Error: failed to read page after " "Error: failed to read page after "
"10 retries. File %s seems to be " "10 retries. File %s seems to be "
"corrupted.\n", cursor->thread_n, "corrupted.", cursor->abs_path);
cursor->abs_path);
ret = XB_FIL_CUR_ERROR; ret = XB_FIL_CUR_ERROR;
buf_page_print(page, cursor->page_size); buf_page_print(page, cursor->page_size);
break; break;
} }
msg("[%02u] mariabackup: " msg(cursor->thread_n, "Database page corruption detected at page "
"Database page corruption detected at page " ULINTPF ", retrying...",
ULINTPF ", retrying...\n", cursor->thread_n,
page_no); page_no);
os_thread_sleep(100000); os_thread_sleep(100000);
goto read_retry; goto read_retry;
} }
......
...@@ -738,7 +738,7 @@ ibx_get_one_option(int optid, ...@@ -738,7 +738,7 @@ ibx_get_one_option(int optid,
exit(0); exit(0);
break; break;
case 'v': case 'v':
msg("innobackupex version %s %s (%s)\n", printf("innobackupex version %s %s (%s)",
MYSQL_SERVER_VERSION, MYSQL_SERVER_VERSION,
SYSTEM_TYPE, MACHINE_TYPE); SYSTEM_TYPE, MACHINE_TYPE);
exit(0); exit(0);
......
...@@ -79,9 +79,8 @@ wf_incremental_init(xb_write_filt_ctxt_t *ctxt, char *dst_name, ...@@ -79,9 +79,8 @@ wf_incremental_init(xb_write_filt_ctxt_t *ctxt, char *dst_name,
cp->delta_buf = (unsigned char *)os_mem_alloc_large(&cp->delta_buf_size); cp->delta_buf = (unsigned char *)os_mem_alloc_large(&cp->delta_buf_size);
if (!cp->delta_buf) { if (!cp->delta_buf) {
msg("[%02u] mariabackup: Error: " msg(cursor->thread_n,"Can't allocate %zu bytes",
"cannot allocate %zu bytes\n", (size_t) cp->delta_buf_size);
cursor->thread_n, (size_t) cp->delta_buf_size);
return (FALSE); return (FALSE);
} }
...@@ -90,9 +89,9 @@ wf_incremental_init(xb_write_filt_ctxt_t *ctxt, char *dst_name, ...@@ -90,9 +89,9 @@ wf_incremental_init(xb_write_filt_ctxt_t *ctxt, char *dst_name,
XB_DELTA_INFO_SUFFIX); XB_DELTA_INFO_SUFFIX);
const xb_delta_info_t info(cursor->page_size, cursor->space_id); const xb_delta_info_t info(cursor->page_size, cursor->space_id);
if (!xb_write_delta_metadata(meta_name, &info)) { if (!xb_write_delta_metadata(meta_name, &info)) {
msg("[%02u] mariabackup: Error: " msg(cursor->thread_n,"Error: "
"failed to write meta info for %s\n", "failed to write meta info for %s",
cursor->thread_n, cursor->rel_path); cursor->rel_path);
return(FALSE); return(FALSE);
} }
......
...@@ -45,7 +45,6 @@ datasink_t datasink_archive; ...@@ -45,7 +45,6 @@ datasink_t datasink_archive;
datasink_t datasink_xbstream; datasink_t datasink_xbstream;
datasink_t datasink_compress; datasink_t datasink_compress;
datasink_t datasink_tmpfile; datasink_t datasink_tmpfile;
datasink_t datasink_buffer;
static run_mode_t opt_mode; static run_mode_t opt_mode;
static char * opt_directory = NULL; static char * opt_directory = NULL;
...@@ -106,7 +105,7 @@ main(int argc, char **argv) ...@@ -106,7 +105,7 @@ main(int argc, char **argv)
} }
if (opt_mode == RUN_MODE_NONE) { if (opt_mode == RUN_MODE_NONE) {
msg("%s: either -c or -x must be specified.\n", my_progname); msg("%s: either -c or -x must be specified.", my_progname);
goto err; goto err;
} }
...@@ -184,7 +183,7 @@ int ...@@ -184,7 +183,7 @@ int
set_run_mode(run_mode_t mode) set_run_mode(run_mode_t mode)
{ {
if (opt_mode != RUN_MODE_NONE) { if (opt_mode != RUN_MODE_NONE) {
msg("%s: can't set specify both -c and -x.\n", my_progname); msg("%s: can't set specify both -c and -x.", my_progname);
return 1; return 1;
} }
...@@ -233,7 +232,7 @@ stream_one_file(File file, xb_wstream_file_t *xbfile) ...@@ -233,7 +232,7 @@ stream_one_file(File file, xb_wstream_file_t *xbfile)
while ((bytes = (ssize_t)my_read(file, buf, XBSTREAM_BUFFER_SIZE, while ((bytes = (ssize_t)my_read(file, buf, XBSTREAM_BUFFER_SIZE,
MYF(MY_WME))) > 0) { MYF(MY_WME))) > 0) {
if (xb_stream_write_data(xbfile, buf, bytes)) { if (xb_stream_write_data(xbfile, buf, bytes)) {
msg("%s: xb_stream_write_data() failed.\n", msg("%s: xb_stream_write_data() failed.",
my_progname); my_progname);
my_free(buf); my_free(buf);
return 1; return 1;
...@@ -262,13 +261,13 @@ mode_create(int argc, char **argv) ...@@ -262,13 +261,13 @@ mode_create(int argc, char **argv)
xb_wstream_t *stream; xb_wstream_t *stream;
if (argc < 1) { if (argc < 1) {
msg("%s: no files are specified.\n", my_progname); msg("%s: no files are specified.", my_progname);
return 1; return 1;
} }
stream = xb_stream_write_new(); stream = xb_stream_write_new();
if (stream == NULL) { if (stream == NULL) {
msg("%s: xb_stream_write_new() failed.\n", my_progname); msg("%s: xb_stream_write_new() failed.", my_progname);
return 1; return 1;
} }
...@@ -281,13 +280,13 @@ mode_create(int argc, char **argv) ...@@ -281,13 +280,13 @@ mode_create(int argc, char **argv)
goto err; goto err;
} }
if (!MY_S_ISREG(mystat.st_mode)) { if (!MY_S_ISREG(mystat.st_mode)) {
msg("%s: %s is not a regular file, exiting.\n", msg("%s: %s is not a regular file, exiting.",
my_progname, filepath); my_progname, filepath);
goto err; goto err;
} }
if ((src_file = my_open(filepath, O_RDONLY, MYF(MY_WME))) < 0) { if ((src_file = my_open(filepath, O_RDONLY, MYF(MY_WME))) < 0) {
msg("%s: failed to open %s.\n", my_progname, filepath); msg("%s: failed to open %s.", my_progname, filepath);
goto err; goto err;
} }
...@@ -297,7 +296,7 @@ mode_create(int argc, char **argv) ...@@ -297,7 +296,7 @@ mode_create(int argc, char **argv)
} }
if (opt_verbose) { if (opt_verbose) {
msg("%s\n", filepath); msg("%s", filepath);
} }
if (stream_one_file(src_file, file) || if (stream_one_file(src_file, file) ||
...@@ -338,12 +337,12 @@ file_entry_new(extract_ctxt_t *ctxt, const char *path, uint pathlen) ...@@ -338,12 +337,12 @@ file_entry_new(extract_ctxt_t *ctxt, const char *path, uint pathlen)
file = ds_open(ctxt->ds_ctxt, path, NULL); file = ds_open(ctxt->ds_ctxt, path, NULL);
if (file == NULL) { if (file == NULL) {
msg("%s: failed to create file.\n", my_progname); msg("%s: failed to create file.", my_progname);
goto err; goto err;
} }
if (opt_verbose) { if (opt_verbose) {
msg("%s\n", entry->path); msg("%s", entry->path);
} }
entry->file = file; entry->file = file;
...@@ -425,7 +424,7 @@ extract_worker_thread_func(void *arg) ...@@ -425,7 +424,7 @@ extract_worker_thread_func(void *arg)
break; break;
} }
if (my_hash_insert(ctxt->filehash, (uchar *) entry)) { if (my_hash_insert(ctxt->filehash, (uchar *) entry)) {
msg("%s: my_hash_insert() failed.\n", msg("%s: my_hash_insert() failed.",
my_progname); my_progname);
pthread_mutex_unlock(ctxt->mutex); pthread_mutex_unlock(ctxt->mutex);
break; break;
...@@ -454,7 +453,7 @@ extract_worker_thread_func(void *arg) ...@@ -454,7 +453,7 @@ extract_worker_thread_func(void *arg)
if (entry->offset != chunk.offset) { if (entry->offset != chunk.offset) {
msg("%s: out-of-order chunk: real offset = 0x%llx, " msg("%s: out-of-order chunk: real offset = 0x%llx, "
"expected offset = 0x%llx\n", my_progname, "expected offset = 0x%llx", my_progname,
chunk.offset, entry->offset); chunk.offset, entry->offset);
pthread_mutex_unlock(&entry->mutex); pthread_mutex_unlock(&entry->mutex);
res = XB_STREAM_READ_ERROR; res = XB_STREAM_READ_ERROR;
...@@ -462,7 +461,7 @@ extract_worker_thread_func(void *arg) ...@@ -462,7 +461,7 @@ extract_worker_thread_func(void *arg)
} }
if (ds_write(entry->file, chunk.data, chunk.length)) { if (ds_write(entry->file, chunk.data, chunk.length)) {
msg("%s: my_write() failed.\n", my_progname); msg("%s: my_write() failed.", my_progname);
pthread_mutex_unlock(&entry->mutex); pthread_mutex_unlock(&entry->mutex);
res = XB_STREAM_READ_ERROR; res = XB_STREAM_READ_ERROR;
break; break;
...@@ -500,12 +499,12 @@ mode_extract(int n_threads, int argc __attribute__((unused)), ...@@ -500,12 +499,12 @@ mode_extract(int n_threads, int argc __attribute__((unused)),
if (my_hash_init(&filehash, &my_charset_bin, START_FILE_HASH_SIZE, if (my_hash_init(&filehash, &my_charset_bin, START_FILE_HASH_SIZE,
0, 0, (my_hash_get_key) get_file_entry_key, 0, 0, (my_hash_get_key) get_file_entry_key,
(my_hash_free_key) file_entry_free, MYF(0))) { (my_hash_free_key) file_entry_free, MYF(0))) {
msg("%s: failed to initialize file hash.\n", my_progname); msg("%s: failed to initialize file hash.", my_progname);
return 1; return 1;
} }
if (pthread_mutex_init(&mutex, NULL)) { if (pthread_mutex_init(&mutex, NULL)) {
msg("%s: failed to initialize mutex.\n", my_progname); msg("%s: failed to initialize mutex.", my_progname);
my_hash_free(&filehash); my_hash_free(&filehash);
return 1; return 1;
} }
...@@ -520,7 +519,7 @@ mode_extract(int n_threads, int argc __attribute__((unused)), ...@@ -520,7 +519,7 @@ mode_extract(int n_threads, int argc __attribute__((unused)),
stream = xb_stream_read_new(); stream = xb_stream_read_new();
if (stream == NULL) { if (stream == NULL) {
msg("%s: xb_stream_read_new() failed.\n", my_progname); msg("%s: xb_stream_read_new() failed.", my_progname);
pthread_mutex_destroy(&mutex); pthread_mutex_destroy(&mutex);
ret = 1; ret = 1;
goto exit; goto exit;
...@@ -531,8 +530,8 @@ mode_extract(int n_threads, int argc __attribute__((unused)), ...@@ -531,8 +530,8 @@ mode_extract(int n_threads, int argc __attribute__((unused)),
ctxt.ds_ctxt = ds_ctxt; ctxt.ds_ctxt = ds_ctxt;
ctxt.mutex = &mutex; ctxt.mutex = &mutex;
tids = calloc(n_threads, sizeof(pthread_t)); tids = (pthread_t *)calloc(n_threads, sizeof(pthread_t));
retvals = calloc(n_threads, sizeof(void*)); retvals = (void **)calloc(n_threads, sizeof(void*));
for (i = 0; i < n_threads; i++) for (i = 0; i < n_threads; i++)
pthread_create(tids + i, NULL, extract_worker_thread_func, pthread_create(tids + i, NULL, extract_worker_thread_func,
......
...@@ -101,6 +101,6 @@ xb_rstream_result_t xb_stream_read_chunk(xb_rstream_t *stream, ...@@ -101,6 +101,6 @@ xb_rstream_result_t xb_stream_read_chunk(xb_rstream_t *stream,
int xb_stream_read_done(xb_rstream_t *stream); int xb_stream_read_done(xb_rstream_t *stream);
int xb_stream_validate_checksum(xb_rstream_chunk_t *chunk); xb_rstream_result_t xb_stream_validate_checksum(xb_rstream_chunk_t *chunk);
#endif #endif
...@@ -67,15 +67,15 @@ validate_chunk_type(uchar code) ...@@ -67,15 +67,15 @@ validate_chunk_type(uchar code)
} }
} }
int xb_rstream_result_t
xb_stream_validate_checksum(xb_rstream_chunk_t *chunk) xb_stream_validate_checksum(xb_rstream_chunk_t *chunk)
{ {
ulong checksum; ulong checksum;
checksum = crc32_iso3309(0, chunk->data, (uint)chunk->length); checksum = crc32_iso3309(0, (unsigned char *)chunk->data, (uint)chunk->length);
if (checksum != chunk->checksum) { if (checksum != chunk->checksum) {
msg("xb_stream_read_chunk(): invalid checksum at offset " msg("xb_stream_read_chunk(): invalid checksum at offset "
"0x%llx: expected 0x%lx, read 0x%lx.\n", "0x%llx: expected 0x%lx, read 0x%lx.",
(ulonglong) chunk->checksum_offset, chunk->checksum, (ulonglong) chunk->checksum_offset, chunk->checksum,
checksum); checksum);
return XB_STREAM_READ_ERROR; return XB_STREAM_READ_ERROR;
...@@ -86,8 +86,8 @@ xb_stream_validate_checksum(xb_rstream_chunk_t *chunk) ...@@ -86,8 +86,8 @@ xb_stream_validate_checksum(xb_rstream_chunk_t *chunk)
#define F_READ(buf,len) \ #define F_READ(buf,len) \
do { \ do { \
if (xb_read_full(fd, buf, len) < len) { \ if (xb_read_full(fd, (uchar *)buf, len) < len) { \
msg("xb_stream_read_chunk(): my_read() failed.\n"); \ msg("xb_stream_read_chunk(): my_read() failed."); \
goto err; \ goto err; \
} \ } \
} while (0) } while (0)
...@@ -111,7 +111,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk) ...@@ -111,7 +111,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk)
return XB_STREAM_READ_EOF; return XB_STREAM_READ_EOF;
} else if (tbytes < CHUNK_HEADER_CONSTANT_LEN) { } else if (tbytes < CHUNK_HEADER_CONSTANT_LEN) {
msg("xb_stream_read_chunk(): unexpected end of stream at " msg("xb_stream_read_chunk(): unexpected end of stream at "
"offset 0x%llx.\n", stream->offset); "offset 0x%llx.", stream->offset);
goto err; goto err;
} }
...@@ -120,7 +120,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk) ...@@ -120,7 +120,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk)
/* Chunk magic value */ /* Chunk magic value */
if (memcmp(tmpbuf, XB_STREAM_CHUNK_MAGIC, 8)) { if (memcmp(tmpbuf, XB_STREAM_CHUNK_MAGIC, 8)) {
msg("xb_stream_read_chunk(): wrong chunk magic at offset " msg("xb_stream_read_chunk(): wrong chunk magic at offset "
"0x%llx.\n", (ulonglong) stream->offset); "0x%llx.", (ulonglong) stream->offset);
goto err; goto err;
} }
ptr += 8; ptr += 8;
...@@ -135,7 +135,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk) ...@@ -135,7 +135,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk)
if (chunk->type == XB_CHUNK_TYPE_UNKNOWN && if (chunk->type == XB_CHUNK_TYPE_UNKNOWN &&
!(chunk->flags & XB_STREAM_FLAG_IGNORABLE)) { !(chunk->flags & XB_STREAM_FLAG_IGNORABLE)) {
msg("xb_stream_read_chunk(): unknown chunk type 0x%lu at " msg("xb_stream_read_chunk(): unknown chunk type 0x%lu at "
"offset 0x%llx.\n", (ulong) *ptr, "offset 0x%llx.", (ulong) *ptr,
(ulonglong) stream->offset); (ulonglong) stream->offset);
goto err; goto err;
} }
...@@ -146,7 +146,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk) ...@@ -146,7 +146,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk)
pathlen = uint4korr(ptr); pathlen = uint4korr(ptr);
if (pathlen >= FN_REFLEN) { if (pathlen >= FN_REFLEN) {
msg("xb_stream_read_chunk(): path length (%lu) is too large at " msg("xb_stream_read_chunk(): path length (%lu) is too large at "
"offset 0x%llx.\n", (ulong) pathlen, stream->offset); "offset 0x%llx.", (ulong) pathlen, stream->offset);
goto err; goto err;
} }
chunk->pathlen = pathlen; chunk->pathlen = pathlen;
...@@ -170,7 +170,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk) ...@@ -170,7 +170,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk)
ullval = uint8korr(tmpbuf); ullval = uint8korr(tmpbuf);
if (ullval > (ulonglong) SIZE_T_MAX) { if (ullval > (ulonglong) SIZE_T_MAX) {
msg("xb_stream_read_chunk(): chunk length is too large at " msg("xb_stream_read_chunk(): chunk length is too large at "
"offset 0x%llx: 0x%llx.\n", (ulonglong) stream->offset, "offset 0x%llx: 0x%llx.", (ulonglong) stream->offset,
ullval); ullval);
goto err; goto err;
} }
...@@ -181,7 +181,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk) ...@@ -181,7 +181,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk)
ullval = uint8korr(tmpbuf + 8); ullval = uint8korr(tmpbuf + 8);
if (ullval > (ulonglong) MY_OFF_T_MAX) { if (ullval > (ulonglong) MY_OFF_T_MAX) {
msg("xb_stream_read_chunk(): chunk offset is too large at " msg("xb_stream_read_chunk(): chunk offset is too large at "
"offset 0x%llx: 0x%llx.\n", (ulonglong) stream->offset, "offset 0x%llx: 0x%llx.", (ulonglong) stream->offset,
ullval); ullval);
goto err; goto err;
} }
...@@ -194,7 +194,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk) ...@@ -194,7 +194,7 @@ xb_stream_read_chunk(xb_rstream_t *stream, xb_rstream_chunk_t *chunk)
MYF(MY_WME | MY_ALLOW_ZERO_PTR)); MYF(MY_WME | MY_ALLOW_ZERO_PTR));
if (chunk->data == NULL) { if (chunk->data == NULL) {
msg("xb_stream_read_chunk(): failed to increase buffer " msg("xb_stream_read_chunk(): failed to increase buffer "
"to %lu bytes.\n", (ulong) chunk->length); "to %lu bytes.", (ulong) chunk->length);
goto err; goto err;
} }
chunk->buflen = chunk->length; chunk->buflen = chunk->length;
......
...@@ -55,7 +55,7 @@ xb_stream_default_write_callback(xb_wstream_file_t *file __attribute__((unused)) ...@@ -55,7 +55,7 @@ xb_stream_default_write_callback(xb_wstream_file_t *file __attribute__((unused))
void *userdata __attribute__((unused)), void *userdata __attribute__((unused)),
const void *buf, size_t len) const void *buf, size_t len)
{ {
if (my_write(my_fileno(stdout), buf, len, MYF(MY_WME | MY_NABP))) if (my_write(my_fileno(stdout), (const uchar *)buf, len, MYF(MY_WME | MY_NABP)))
return -1; return -1;
return len; return len;
} }
...@@ -83,7 +83,7 @@ xb_stream_write_open(xb_wstream_t *stream, const char *path, ...@@ -83,7 +83,7 @@ xb_stream_write_open(xb_wstream_t *stream, const char *path,
path_len = strlen(path); path_len = strlen(path);
if (path_len > FN_REFLEN) { if (path_len > FN_REFLEN) {
msg("xb_stream_write_open(): file path is too long.\n"); msg("xb_stream_write_open(): file path is too long.");
return NULL; return NULL;
} }
...@@ -216,7 +216,7 @@ xb_stream_write_chunk(xb_wstream_file_t *file, const void *buf, size_t len) ...@@ -216,7 +216,7 @@ xb_stream_write_chunk(xb_wstream_file_t *file, const void *buf, size_t len)
int8store(ptr, len); /* Payload length */ int8store(ptr, len); /* Payload length */
ptr += 8; ptr += 8;
checksum = crc32_iso3309(0, buf, (uint)len); /* checksum */ checksum = crc32_iso3309(0, (const uchar *)buf, (uint)len); /* checksum */
pthread_mutex_lock(&stream->mutex); pthread_mutex_lock(&stream->mutex);
......
...@@ -185,7 +185,7 @@ xb_stream_fmt_t xtrabackup_stream_fmt = XB_STREAM_FMT_NONE; ...@@ -185,7 +185,7 @@ xb_stream_fmt_t xtrabackup_stream_fmt = XB_STREAM_FMT_NONE;
ibool xtrabackup_stream = FALSE; ibool xtrabackup_stream = FALSE;
const char *xtrabackup_compress_alg = NULL; const char *xtrabackup_compress_alg = NULL;
ibool xtrabackup_compress = FALSE; uint xtrabackup_compress = FALSE;
uint xtrabackup_compress_threads; uint xtrabackup_compress_threads;
ulonglong xtrabackup_compress_chunk_size = 0; ulonglong xtrabackup_compress_chunk_size = 0;
...@@ -531,13 +531,13 @@ static os_event_t dbug_start_query_thread( ...@@ -531,13 +531,13 @@ static os_event_t dbug_start_query_thread(
if (exists) { if (exists) {
goto end; goto end;
} }
msg_ts("Waiting for query '%s' on connection %lu to " msg("Waiting for query '%s' on connection %lu to "
" reach state '%s'", query, mysql_thread_id(par->con), " reach state '%s'", query, mysql_thread_id(par->con),
wait_state); wait_state);
my_sleep(1000); my_sleep(1000);
} }
end: end:
msg_ts("query '%s' on connection %lu reached state '%s'", query, msg("query '%s' on connection %lu reached state '%s'", query,
mysql_thread_id(par->con), wait_state); mysql_thread_id(par->con), wait_state);
return par->done_event; return par->done_event;
} }
...@@ -608,16 +608,16 @@ static void backup_file_op(ulint space_id, const byte* flags, ...@@ -608,16 +608,16 @@ static void backup_file_op(ulint space_id, const byte* flags,
if (flags) { if (flags) {
ddl_tracker.id_to_name[space_id] = filename_to_spacename(name, len); ddl_tracker.id_to_name[space_id] = filename_to_spacename(name, len);
msg("DDL tracking : create %zu \"%.*s\": %x\n", msg("DDL tracking : create %zu \"%.*s\": %x",
space_id, int(len), name, mach_read_from_4(flags)); space_id, int(len), name, mach_read_from_4(flags));
} }
else if (new_name) { else if (new_name) {
ddl_tracker.id_to_name[space_id] = filename_to_spacename(new_name, new_len); ddl_tracker.id_to_name[space_id] = filename_to_spacename(new_name, new_len);
msg("DDL tracking : rename %zu \"%.*s\",\"%.*s\"\n", msg("DDL tracking : rename %zu \"%.*s\",\"%.*s\"",
space_id, int(len), name, int(new_len), new_name); space_id, int(len), name, int(new_len), new_name);
} else { } else {
ddl_tracker.drops.insert(space_id); ddl_tracker.drops.insert(space_id);
msg("DDL tracking : delete %zu \"%.*s\"\n", space_id, int(len), name); msg("DDL tracking : delete %zu \"%.*s\"", space_id, int(len), name);
} }
pthread_mutex_unlock(&backup_mutex); pthread_mutex_unlock(&backup_mutex);
} }
...@@ -639,13 +639,13 @@ static void backup_file_op_fail(ulint space_id, const byte* flags, ...@@ -639,13 +639,13 @@ static void backup_file_op_fail(ulint space_id, const byte* flags,
ut_a(opt_no_lock); ut_a(opt_no_lock);
bool fail; bool fail;
if (flags) { if (flags) {
msg("DDL tracking : create %zu \"%.*s\": %x\n", msg("DDL tracking : create %zu \"%.*s\": %x",
space_id, int(len), name, mach_read_from_4(flags)); space_id, int(len), name, mach_read_from_4(flags));
std::string spacename = filename_to_spacename(name, len); std::string spacename = filename_to_spacename(name, len);
fail = !check_if_skip_table(spacename.c_str()); fail = !check_if_skip_table(spacename.c_str());
} }
else if (new_name) { else if (new_name) {
msg("DDL tracking : rename %zu \"%.*s\",\"%.*s\"\n", msg("DDL tracking : rename %zu \"%.*s\",\"%.*s\"",
space_id, int(len), name, int(new_len), new_name); space_id, int(len), name, int(new_len), new_name);
std::string spacename = filename_to_spacename(name, len); std::string spacename = filename_to_spacename(name, len);
std::string new_spacename = filename_to_spacename(new_name, new_len); std::string new_spacename = filename_to_spacename(new_name, new_len);
...@@ -654,11 +654,11 @@ static void backup_file_op_fail(ulint space_id, const byte* flags, ...@@ -654,11 +654,11 @@ static void backup_file_op_fail(ulint space_id, const byte* flags,
else { else {
std::string spacename = filename_to_spacename(name, len); std::string spacename = filename_to_spacename(name, len);
fail = !check_if_skip_table(spacename.c_str()); fail = !check_if_skip_table(spacename.c_str());
msg("DDL tracking : delete %zu \"%.*s\"\n", space_id, int(len), name); msg("DDL tracking : delete %zu \"%.*s\"", space_id, int(len), name);
} }
if (fail) { if (fail) {
msg("ERROR : DDL operation detected in the late phase of backup." msg("ERROR : DDL operation detected in the late phase of backup."
"Backup is inconsistent. Remove --no-lock option to fix.\n"); "Backup is inconsistent. Remove --no-lock option to fix.");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
...@@ -679,10 +679,10 @@ static void backup_optimized_ddl_op(ulint space_id) ...@@ -679,10 +679,10 @@ static void backup_optimized_ddl_op(ulint space_id)
*/ */
static void backup_optimized_ddl_op_fail(ulint space_id) { static void backup_optimized_ddl_op_fail(ulint space_id) {
ut_a(opt_no_lock); ut_a(opt_no_lock);
msg("DDL tracking : optimized DDL on space %zu\n", space_id); msg("DDL tracking : optimized DDL on space %zu", space_id);
if (ddl_tracker.tables_in_backup.find(space_id) != ddl_tracker.tables_in_backup.end()) { if (ddl_tracker.tables_in_backup.find(space_id) != ddl_tracker.tables_in_backup.end()) {
msg("ERROR : Optimized DDL operation detected in the late phase of backup." msg("ERROR : Optimized DDL operation detected in the late phase of backup."
"Backup is inconsistent. Remove --no-lock option to fix.\n"); "Backup is inconsistent. Remove --no-lock option to fix.");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
...@@ -691,7 +691,7 @@ static void backup_optimized_ddl_op_fail(ulint space_id) { ...@@ -691,7 +691,7 @@ static void backup_optimized_ddl_op_fail(ulint space_id) {
/** Callback whenever MLOG_TRUNCATE happens. */ /** Callback whenever MLOG_TRUNCATE happens. */
static void backup_truncate_fail() static void backup_truncate_fail()
{ {
msg("mariabackup: Incompatible TRUNCATE operation detected.%s\n", msg("mariabackup: Incompatible TRUNCATE operation detected.%s",
opt_lock_ddl_per_table opt_lock_ddl_per_table
? "" ? ""
: " Use --lock-ddl-per-table to lock all tables before backup."); : " Use --lock-ddl-per-table to lock all tables before backup.");
...@@ -1457,14 +1457,14 @@ debug_sync_point(const char *name) ...@@ -1457,14 +1457,14 @@ debug_sync_point(const char *name)
xtrabackup_target_dir); xtrabackup_target_dir);
fp = fopen(pid_path, "w"); fp = fopen(pid_path, "w");
if (fp == NULL) { if (fp == NULL) {
msg("mariabackup: Error: cannot open %s\n", pid_path); msg("mariabackup: Error: cannot open %s", pid_path);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
fprintf(fp, "%u\n", (uint) pid); fprintf(fp, "%u\n", (uint) pid);
fclose(fp); fclose(fp);
msg("mariabackup: DEBUG: Suspending at debug sync point '%s'. " msg("mariabackup: DEBUG: Suspending at debug sync point '%s'. "
"Resume with 'kill -SIGCONT %u'.\n", name, (uint) pid); "Resume with 'kill -SIGCONT %u'.", name, (uint) pid);
debug_sync_resumed= 0; debug_sync_resumed= 0;
kill(pid, SIGSTOP); kill(pid, SIGSTOP);
...@@ -1473,7 +1473,7 @@ debug_sync_point(const char *name) ...@@ -1473,7 +1473,7 @@ debug_sync_point(const char *name)
} }
/* On resume */ /* On resume */
msg("mariabackup: DEBUG: removing the pid file.\n"); msg("mariabackup: DEBUG: removing the pid file.");
my_delete(pid_path, MYF(MY_WME)); my_delete(pid_path, MYF(MY_WME));
#endif #endif
} }
...@@ -1593,7 +1593,7 @@ static const char *xb_server_default_groups[]= ...@@ -1593,7 +1593,7 @@ static const char *xb_server_default_groups[]=
static void print_version(void) static void print_version(void)
{ {
msg("%s based on MariaDB server %s %s (%s) \n", msg("%s based on MariaDB server %s %s (%s)",
my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE); my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
} }
...@@ -1717,7 +1717,7 @@ xb_get_one_option(int optid, ...@@ -1717,7 +1717,7 @@ xb_get_one_option(int optid,
xtrabackup_stream_fmt = XB_STREAM_FMT_XBSTREAM; xtrabackup_stream_fmt = XB_STREAM_FMT_XBSTREAM;
else else
{ {
msg("Invalid --stream argument: %s\n", argument); msg("Invalid --stream argument: %s", argument);
return 1; return 1;
} }
xtrabackup_stream = TRUE; xtrabackup_stream = TRUE;
...@@ -1727,7 +1727,7 @@ xb_get_one_option(int optid, ...@@ -1727,7 +1727,7 @@ xb_get_one_option(int optid,
xtrabackup_compress_alg = "quicklz"; xtrabackup_compress_alg = "quicklz";
else if (strcasecmp(argument, "quicklz")) else if (strcasecmp(argument, "quicklz"))
{ {
msg("Invalid --compress argument: %s\n", argument); msg("Invalid --compress argument: %s", argument);
return 1; return 1;
} }
xtrabackup_compress = TRUE; xtrabackup_compress = TRUE;
...@@ -1808,8 +1808,8 @@ innodb_init_param(void) ...@@ -1808,8 +1808,8 @@ innodb_init_param(void)
if (n_shift >= 12 && n_shift <= UNIV_PAGE_SIZE_SHIFT_MAX) { if (n_shift >= 12 && n_shift <= UNIV_PAGE_SIZE_SHIFT_MAX) {
srv_page_size_shift = n_shift; srv_page_size_shift = n_shift;
srv_page_size = 1 << n_shift; srv_page_size = 1 << n_shift;
msg("InnoDB: The universal page size of the " msg("InnoDB: The page size of the "
"database is set to %lu.\n", srv_page_size); "database is set to %lu.", srv_page_size);
} else { } else {
msg("InnoDB: Error: invalid value of " msg("InnoDB: Error: invalid value of "
"innobase_page_size: %lld", innobase_page_size); "innobase_page_size: %lld", innobase_page_size);
...@@ -1824,12 +1824,12 @@ innodb_init_param(void) ...@@ -1824,12 +1824,12 @@ innodb_init_param(void)
if (sizeof(ulint) == 4) { if (sizeof(ulint) == 4) {
if (xtrabackup_use_memory > UINT_MAX32) { if (xtrabackup_use_memory > UINT_MAX32) {
msg("mariabackup: use-memory can't be over 4GB" msg("mariabackup: use-memory can't be over 4GB"
" on 32-bit systems\n"); " on 32-bit systems");
} }
if (innobase_buffer_pool_size > UINT_MAX32) { if (innobase_buffer_pool_size > UINT_MAX32) {
msg("mariabackup: innobase_buffer_pool_size can't be " msg("mariabackup: innobase_buffer_pool_size can't be "
"over 4GB on 32-bit systems\n"); "over 4GB on 32-bit systems");
goto error; goto error;
} }
...@@ -1842,10 +1842,10 @@ innodb_init_param(void) ...@@ -1842,10 +1842,10 @@ innodb_init_param(void)
read from MySQL .cnf file */ read from MySQL .cnf file */
if (xtrabackup_backup) { if (xtrabackup_backup) {
msg("mariabackup: using the following InnoDB configuration:\n"); msg("mariabackup: using the following InnoDB configuration:");
} else { } else {
msg("mariabackup: using the following InnoDB configuration " msg("mariabackup: using the following InnoDB configuration "
"for recovery:\n"); "for recovery:");
} }
/*--------------- Data files -------------------------*/ /*--------------- Data files -------------------------*/
...@@ -1854,7 +1854,7 @@ innodb_init_param(void) ...@@ -1854,7 +1854,7 @@ innodb_init_param(void)
srv_data_home = (xtrabackup_backup && innobase_data_home_dir srv_data_home = (xtrabackup_backup && innobase_data_home_dir
? innobase_data_home_dir : default_path); ? innobase_data_home_dir : default_path);
msg("mariabackup: innodb_data_home_dir = %s\n", srv_data_home); msg("innodb_data_home_dir = %s", srv_data_home);
/* Set default InnoDB data file size to 10 MB and let it be /* Set default InnoDB data file size to 10 MB and let it be
auto-extending. Thus users can use InnoDB in >= 4.0 without having auto-extending. Thus users can use InnoDB in >= 4.0 without having
...@@ -1863,7 +1863,7 @@ innodb_init_param(void) ...@@ -1863,7 +1863,7 @@ innodb_init_param(void)
if (!innobase_data_file_path) { if (!innobase_data_file_path) {
innobase_data_file_path = (char*) "ibdata1:10M:autoextend"; innobase_data_file_path = (char*) "ibdata1:10M:autoextend";
} }
msg("mariabackup: innodb_data_file_path = %s\n", msg("innodb_data_file_path = %s",
innobase_data_file_path); innobase_data_file_path);
/* This is the first time univ_page_size is used. /* This is the first time univ_page_size is used.
...@@ -1890,13 +1890,12 @@ innodb_init_param(void) ...@@ -1890,13 +1890,12 @@ innodb_init_param(void)
if (xtrabackup_prepare && xtrabackup_incremental_dir) { if (xtrabackup_prepare && xtrabackup_incremental_dir) {
srv_log_group_home_dir = xtrabackup_incremental_dir; srv_log_group_home_dir = xtrabackup_incremental_dir;
} }
msg("mariabackup: innodb_log_group_home_dir = %s\n", msg("innodb_log_group_home_dir = %s",
srv_log_group_home_dir); srv_log_group_home_dir);
os_normalize_path(srv_log_group_home_dir); os_normalize_path(srv_log_group_home_dir);
if (strchr(srv_log_group_home_dir, ';')) { if (strchr(srv_log_group_home_dir, ';')) {
msg("syntax error in innodb_log_group_home_dir, "); msg("syntax error in innodb_log_group_home_dir, ");
goto error; goto error;
} }
...@@ -1963,8 +1962,7 @@ innodb_init_param(void) ...@@ -1963,8 +1962,7 @@ innodb_init_param(void)
#elif defined(LINUX_NATIVE_AIO) #elif defined(LINUX_NATIVE_AIO)
if (srv_use_native_aio) { if (srv_use_native_aio) {
ut_print_timestamp(stderr); msg("InnoDB: Using Linux native AIO");
msg(" InnoDB: Using Linux native AIO\n");
} }
#else #else
/* Currently native AIO is supported only on windows and linux /* Currently native AIO is supported only on windows and linux
...@@ -1991,7 +1989,7 @@ innodb_init_param(void) ...@@ -1991,7 +1989,7 @@ innodb_init_param(void)
return(FALSE); return(FALSE);
error: error:
msg("mariabackup: innodb_init_param(): Error occured.\n"); msg("innodb_init_param(): Error occured.");
return(TRUE); return(TRUE);
} }
...@@ -1999,7 +1997,7 @@ static bool innodb_init() ...@@ -1999,7 +1997,7 @@ static bool innodb_init()
{ {
dberr_t err = innobase_start_or_create_for_mysql(); dberr_t err = innobase_start_or_create_for_mysql();
if (err != DB_SUCCESS) { if (err != DB_SUCCESS) {
msg("mariabackup: innodb_init() returned %d (%s).\n", msg("mariabackup: innodb_init() returned %d (%s).",
err, ut_strerr(err)); err, ut_strerr(err));
innodb_shutdown(); innodb_shutdown();
return(TRUE); return(TRUE);
...@@ -2023,7 +2021,7 @@ xtrabackup_read_metadata(char *filename) ...@@ -2023,7 +2021,7 @@ xtrabackup_read_metadata(char *filename)
fp = fopen(filename,"r"); fp = fopen(filename,"r");
if(!fp) { if(!fp) {
msg("mariabackup: Error: cannot open %s\n", filename); msg("Error: cannot open %s", filename);
return(FALSE); return(FALSE);
} }
...@@ -2102,8 +2100,7 @@ xtrabackup_stream_metadata(ds_ctxt_t *ds_ctxt) ...@@ -2102,8 +2100,7 @@ xtrabackup_stream_metadata(ds_ctxt_t *ds_ctxt)
stream = ds_open(ds_ctxt, XTRABACKUP_METADATA_FILENAME, &mystat); stream = ds_open(ds_ctxt, XTRABACKUP_METADATA_FILENAME, &mystat);
if (stream == NULL) { if (stream == NULL) {
msg("mariabackup: Error: cannot open output stream " msg("Error: cannot open output stream for %s", XTRABACKUP_METADATA_FILENAME);
"for %s\n", XTRABACKUP_METADATA_FILENAME);
return(FALSE); return(FALSE);
} }
...@@ -2135,7 +2132,7 @@ xtrabackup_write_metadata(const char *filepath) ...@@ -2135,7 +2132,7 @@ xtrabackup_write_metadata(const char *filepath)
fp = fopen(filepath, "w"); fp = fopen(filepath, "w");
if(!fp) { if(!fp) {
msg("mariabackup: Error: cannot open %s\n", filepath); msg("Error: cannot open %s", filepath);
return(FALSE); return(FALSE);
} }
if (fwrite(buf, len, 1, fp) < 1) { if (fwrite(buf, len, 1, fp) < 1) {
...@@ -2184,7 +2181,7 @@ xb_read_delta_metadata(const char *filepath, xb_delta_info_t *info) ...@@ -2184,7 +2181,7 @@ xb_read_delta_metadata(const char *filepath, xb_delta_info_t *info)
fclose(fp); fclose(fp);
if (page_size == ULINT_UNDEFINED) { if (page_size == ULINT_UNDEFINED) {
msg("mariabackup: page_size is required in %s\n", filepath); msg("page_size is required in %s", filepath);
r = FALSE; r = FALSE;
} else { } else {
info->page_size = page_size_t(zip_size ? zip_size : page_size, info->page_size = page_size_t(zip_size ? zip_size : page_size,
...@@ -2194,7 +2191,7 @@ xb_read_delta_metadata(const char *filepath, xb_delta_info_t *info) ...@@ -2194,7 +2191,7 @@ xb_read_delta_metadata(const char *filepath, xb_delta_info_t *info)
if (info->space_id == ULINT_UNDEFINED) { if (info->space_id == ULINT_UNDEFINED) {
msg("mariabackup: Warning: This backup was taken with XtraBackup 2.0.1 " msg("mariabackup: Warning: This backup was taken with XtraBackup 2.0.1 "
"or earlier, some DDL operations between full and incremental " "or earlier, some DDL operations between full and incremental "
"backups may be handled incorrectly\n"); "backups may be handled incorrectly");
} }
return(r); return(r);
...@@ -2227,8 +2224,7 @@ xb_write_delta_metadata(const char *filename, const xb_delta_info_t *info) ...@@ -2227,8 +2224,7 @@ xb_write_delta_metadata(const char *filename, const xb_delta_info_t *info)
f = ds_open(ds_meta, filename, &mystat); f = ds_open(ds_meta, filename, &mystat);
if (f == NULL) { if (f == NULL) {
msg("mariabackup: Error: cannot open output stream for %s\n", msg("Error: Can't open output stream for %s",filename);
filename);
return(FALSE); return(FALSE);
} }
...@@ -2536,7 +2532,7 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name= ...@@ -2536,7 +2532,7 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name=
if (fil_is_user_tablespace_id(node->space->id) if (fil_is_user_tablespace_id(node->space->id)
&& check_if_skip_table(node_name)) { && check_if_skip_table(node_name)) {
msg("[%02u] Skipping %s.\n", thread_n, node_name); msg(thread_n, "Skipping %s.", node_name);
return(FALSE); return(FALSE);
} }
...@@ -2578,26 +2574,22 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name= ...@@ -2578,26 +2574,22 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name=
if (write_filter->init != NULL && if (write_filter->init != NULL &&
!write_filter->init(&write_filt_ctxt, dst_name, &cursor)) { !write_filter->init(&write_filt_ctxt, dst_name, &cursor)) {
msg("[%02u] mariabackup: error: " msg (thread_n, "mariabackup: error: failed to initialize page write filter.");
"failed to initialize page write filter.\n", thread_n);
goto error; goto error;
} }
dstfile = ds_open(ds_data, dst_name, &cursor.statinfo); dstfile = ds_open(ds_data, dst_name, &cursor.statinfo);
if (dstfile == NULL) { if (dstfile == NULL) {
msg("[%02u] mariabackup: error: " msg(thread_n,"mariabackup: error: can't open the destination stream for %s", dst_name);
"cannot open the destination stream for %s\n",
thread_n, dst_name);
goto error; goto error;
} }
action = xb_get_copy_action(); action = xb_get_copy_action();
if (xtrabackup_stream) { if (xtrabackup_stream) {
msg_ts("[%02u] %s %s\n", thread_n, action, node_path); msg(thread_n, "%s %s", action, node_path);
} else { } else {
msg_ts("[%02u] %s %s to %s\n", thread_n, action, msg(thread_n, "%s %s to %s", action, node_path, dstfile->path);
node_path, dstfile->path);
} }
/* The main copy loop */ /* The main copy loop */
...@@ -2621,7 +2613,7 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name= ...@@ -2621,7 +2613,7 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name=
pthread_mutex_unlock(&backup_mutex); pthread_mutex_unlock(&backup_mutex);
/* close */ /* close */
msg_ts("[%02u] ...done\n", thread_n); msg(thread_n," ...done");
xb_fil_cur_close(&cursor); xb_fil_cur_close(&cursor);
if (ds_close(dstfile)) { if (ds_close(dstfile)) {
rc = TRUE; rc = TRUE;
...@@ -2639,8 +2631,7 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name= ...@@ -2639,8 +2631,7 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name=
if (write_filter && write_filter->deinit) { if (write_filter && write_filter->deinit) {
write_filter->deinit(&write_filt_ctxt);; write_filter->deinit(&write_filt_ctxt);;
} }
msg("[%02u] mariabackup: Error: " msg(thread_n, "mariabackup: xtrabackup_copy_datafile() failed.");
"xtrabackup_copy_datafile() failed.\n", thread_n);
return(TRUE); /*ERROR*/ return(TRUE); /*ERROR*/
skip: skip:
...@@ -2651,11 +2642,7 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name= ...@@ -2651,11 +2642,7 @@ xtrabackup_copy_datafile(fil_node_t* node, uint thread_n, const char *dest_name=
if (write_filter && write_filter->deinit) { if (write_filter && write_filter->deinit) {
write_filter->deinit(&write_filt_ctxt); write_filter->deinit(&write_filt_ctxt);
} }
msg("[%02u] mariabackup: Warning: We assume the " msg(thread_n,"Warning: We assume the table was dropped during xtrabackup execution and ignore the tablespace %s", node_name);
"table was dropped during xtrabackup execution "
"and ignore the file.\n", thread_n);
msg("[%02u] mariabackup: Warning: skipping tablespace %s.\n",
thread_n, node_name);
return(FALSE); return(FALSE);
} }
...@@ -2680,9 +2667,8 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last) ...@@ -2680,9 +2667,8 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last)
&& scanned_checkpoint - checkpoint >= 0x80000000UL) { && scanned_checkpoint - checkpoint >= 0x80000000UL) {
/* Garbage from a log buffer flush which was made /* Garbage from a log buffer flush which was made
before the most recent database recovery */ before the most recent database recovery */
msg("mariabackup: checkpoint wrap: " msg(0,"checkpoint wrap: " LSN_PF ",%zx,%zx",
LSN_PF ",%zx,%zx\n", scanned_lsn, scanned_checkpoint, checkpoint);
scanned_lsn, scanned_checkpoint, checkpoint);
break; break;
} }
...@@ -2703,8 +2689,7 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last) ...@@ -2703,8 +2689,7 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last)
>= OS_FILE_LOG_BLOCK_SIZE - LOG_BLOCK_TRL_SIZE >= OS_FILE_LOG_BLOCK_SIZE - LOG_BLOCK_TRL_SIZE
|| data_len <= LOG_BLOCK_HDR_SIZE) { || data_len <= LOG_BLOCK_HDR_SIZE) {
/* We got a garbage block (abrupt end of the log). */ /* We got a garbage block (abrupt end of the log). */
msg("mariabackup: garbage block: " LSN_PF ",%zu\n", msg(0,"garbage block: " LSN_PF ",%zu",scanned_lsn, data_len);
scanned_lsn, data_len);
break; break;
} else { } else {
/* We got a partial block (abrupt end of the log). */ /* We got a partial block (abrupt end of the log). */
...@@ -2715,7 +2700,7 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last) ...@@ -2715,7 +2700,7 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last)
if (more_data && recv_parse_log_recs(0, STORE_NO, false)) { if (more_data && recv_parse_log_recs(0, STORE_NO, false)) {
msg("mariabackup: copying the log failed \n"); msg("Error: copying the log failed");
return(0); return(0);
} }
...@@ -2734,8 +2719,7 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last) ...@@ -2734,8 +2719,7 @@ static lsn_t xtrabackup_copy_log(lsn_t start_lsn, lsn_t end_lsn, bool last)
} }
if (ds_write(dst_log_file, log_sys->buf, write_size)) { if (ds_write(dst_log_file, log_sys->buf, write_size)) {
msg("mariabackup: Error: " msg("Error: write to logfile failed\n");
"write to logfile failed\n");
return(0); return(0);
} }
} }
...@@ -2772,7 +2756,7 @@ static bool xtrabackup_copy_logfile(bool last = false) ...@@ -2772,7 +2756,7 @@ static bool xtrabackup_copy_logfile(bool last = false)
|| lsn != start_lsn) { || lsn != start_lsn) {
break; break;
} }
msg("Retrying read of log at LSN=" LSN_PF "\n", lsn); msg("Retrying read of log at LSN=" LSN_PF, lsn);
my_sleep(1000); my_sleep(1000);
} }
...@@ -2782,15 +2766,14 @@ static bool xtrabackup_copy_logfile(bool last = false) ...@@ -2782,15 +2766,14 @@ static bool xtrabackup_copy_logfile(bool last = false)
log_mutex_exit(); log_mutex_exit();
if (!start_lsn) { if (!start_lsn) {
msg("mariabackup: Error: xtrabackup_copy_logfile()" msg("Error: xtrabackup_copy_logfile() failed.");
" failed.\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} while (start_lsn == end_lsn); } while (start_lsn == end_lsn);
ut_ad(start_lsn == log_sys->log.scanned_lsn); ut_ad(start_lsn == log_sys->log.scanned_lsn);
msg_ts(">> log scanned up to (" LSN_PF ")\n", start_lsn); msg(">> log scanned up to (" LSN_PF ")", start_lsn);
/* update global variable*/ /* update global variable*/
pthread_mutex_lock(&backup_mutex); pthread_mutex_lock(&backup_mutex);
...@@ -2899,7 +2882,7 @@ static void dbug_mariabackup_event(const char *event,const char *key) ...@@ -2899,7 +2882,7 @@ static void dbug_mariabackup_event(const char *event,const char *key)
} }
char *sql = getenv(envvar); char *sql = getenv(envvar);
if (sql) { if (sql) {
msg("dbug_mariabackup_event : executing '%s'\n", sql); msg("dbug_mariabackup_event : executing '%s'", sql);
xb_mysql_query(mysql_connection, sql, false, true); xb_mysql_query(mysql_connection, sql, false, true);
} }
...@@ -2930,14 +2913,10 @@ data_copy_thread_func( ...@@ -2930,14 +2913,10 @@ data_copy_thread_func(
debug_sync_point("data_copy_thread_func"); debug_sync_point("data_copy_thread_func");
while ((node = datafiles_iter_next(ctxt->it)) != NULL) { while ((node = datafiles_iter_next(ctxt->it)) != NULL) {
DBUG_MARIABACKUP_EVENT("before_copy", node->space->name); DBUG_MARIABACKUP_EVENT("before_copy", node->space->name);
/* copy the datafile */ /* copy the datafile */
if(xtrabackup_copy_datafile(node, num)) { if(xtrabackup_copy_datafile(node, num)) {
msg("[%02u] mariabackup: Error: " msg(num,"mariabackup: Error: failed to copy datafile.");
"failed to copy datafile.\n", num);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -3115,7 +3094,7 @@ xb_load_single_table_tablespace( ...@@ -3115,7 +3094,7 @@ xb_load_single_table_tablespace(
Datafile *file = xb_new_datafile(name, is_remote); Datafile *file = xb_new_datafile(name, is_remote);
if (file->open_read_only(true) != DB_SUCCESS) { if (file->open_read_only(true) != DB_SUCCESS) {
msg("Can't open datafile %s\n", name); msg("Can't open datafile %s", name);
ut_free(name); ut_free(name);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -3318,7 +3297,7 @@ static dberr_t xb_assign_undo_space_start() ...@@ -3318,7 +3297,7 @@ static dberr_t xb_assign_undo_space_start()
OS_FILE_OPEN, OS_FILE_NORMAL, OS_DATA_FILE, true, &ret); OS_FILE_OPEN, OS_FILE_NORMAL, OS_DATA_FILE, true, &ret);
if (!ret) { if (!ret) {
msg("mariabackup: Error in opening %s\n", srv_sys_space.first_datafile()->filepath()); msg("Error opening %s", srv_sys_space.first_datafile()->filepath());
return DB_ERROR; return DB_ERROR;
} }
...@@ -3328,7 +3307,7 @@ static dberr_t xb_assign_undo_space_start() ...@@ -3328,7 +3307,7 @@ static dberr_t xb_assign_undo_space_start()
retry: retry:
if (!os_file_read(IORequestRead, file, page, TRX_SYS_PAGE_NO * UNIV_PAGE_SIZE, if (!os_file_read(IORequestRead, file, page, TRX_SYS_PAGE_NO * UNIV_PAGE_SIZE,
UNIV_PAGE_SIZE)) { UNIV_PAGE_SIZE)) {
msg("mariabackup: Reading TRX_SYS page failed.\n"); msg("Reading TRX_SYS page failed.");
error = DB_ERROR; error = DB_ERROR;
goto func_exit; goto func_exit;
} }
...@@ -3386,8 +3365,7 @@ xb_load_tablespaces() ...@@ -3386,8 +3365,7 @@ xb_load_tablespaces()
/* create_new_db must not be true. */ /* create_new_db must not be true. */
if (err != DB_SUCCESS || create_new_db) { if (err != DB_SUCCESS || create_new_db) {
msg("mariabackup: could not find data files at the " msg("Could not find data files at the specified datadir");
"specified datadir\n");
return(DB_ERROR); return(DB_ERROR);
} }
...@@ -3402,7 +3380,7 @@ xb_load_tablespaces() ...@@ -3402,7 +3380,7 @@ xb_load_tablespaces()
} }
if (err != DB_SUCCESS) { if (err != DB_SUCCESS) {
msg("mariabackup: Could not open data files.\n"); msg("Could not open data files.\n");
return(err); return(err);
} }
...@@ -3424,7 +3402,7 @@ xb_load_tablespaces() ...@@ -3424,7 +3402,7 @@ xb_load_tablespaces()
srv_undo_tablespaces_init(), because fil_is_user_tablespace_id() * srv_undo_tablespaces_init(), because fil_is_user_tablespace_id() *
relies on srv_undo_tablespaces_open to be properly initialized */ relies on srv_undo_tablespaces_open to be properly initialized */
msg("mariabackup: Generating a list of tablespaces\n"); msg("mariabackup: Generating a list of tablespaces");
err = enumerate_ibd_files(xb_load_single_table_tablespace); err = enumerate_ibd_files(xb_load_single_table_tablespace);
if (err != DB_SUCCESS) { if (err != DB_SUCCESS) {
...@@ -3527,12 +3505,12 @@ xb_validate_name( ...@@ -3527,12 +3505,12 @@ xb_validate_name(
/* perform only basic validation. validate length and /* perform only basic validation. validate length and
path symbols */ path symbols */
if (len > NAME_LEN) { if (len > NAME_LEN) {
msg("mariabackup: name `%s` is too long.\n", name); msg("mariabackup: name `%s` is too long.", name);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
p = strpbrk(name, "/\\~"); p = strpbrk(name, "/\\~");
if (p && (uint) (p - name) < NAME_LEN) { if (p && (uint) (p - name) < NAME_LEN) {
msg("mariabackup: name `%s` is not valid.\n", name); msg("mariabackup: name `%s` is not valid.", name);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
...@@ -3611,7 +3589,7 @@ xb_register_table( ...@@ -3611,7 +3589,7 @@ xb_register_table(
const char* name) /*!< in: name of table */ const char* name) /*!< in: name of table */
{ {
if (strchr(name, '.') == NULL) { if (strchr(name, '.') == NULL) {
msg("mariabackup: `%s` is not fully qualified name.\n", name); msg("mariabackup: `%s` is not fully qualified name.", name);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -3633,7 +3611,7 @@ xb_add_regex_to_list( ...@@ -3633,7 +3611,7 @@ xb_add_regex_to_list(
if (ret != 0) { if (ret != 0) {
regerror(ret, &compiled_regex, errbuf, sizeof(errbuf)); regerror(ret, &compiled_regex, errbuf, sizeof(errbuf));
msg("mariabackup: error: %s regcomp(%s): %s\n", msg("mariabackup: error: %s regcomp(%s): %s",
error_context, regex, errbuf); error_context, regex, errbuf);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -3702,7 +3680,7 @@ xb_load_list_file( ...@@ -3702,7 +3680,7 @@ xb_load_list_file(
/* read and store the filenames */ /* read and store the filenames */
fp = fopen(filename, "r"); fp = fopen(filename, "r");
if (!fp) { if (!fp) {
msg("mariabackup: cannot open %s\n", msg("mariabackup: cannot open %s",
filename); filename);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -3965,11 +3943,11 @@ static bool xtrabackup_backup_low() ...@@ -3965,11 +3943,11 @@ static bool xtrabackup_backup_low()
} }
metadata_to_lsn = mach_read_from_8( metadata_to_lsn = mach_read_from_8(
log_sys->checkpoint_buf + LOG_CHECKPOINT_LSN); log_sys->checkpoint_buf + LOG_CHECKPOINT_LSN);
msg("mariabackup: The latest check point" msg("The latest check point"
" (for incremental): '" LSN_PF "'\n", " (for incremental): '" LSN_PF "'",
metadata_to_lsn); metadata_to_lsn);
} else { } else {
msg("mariabackup: Error: recv_find_max_checkpoint() failed.\n"); msg("Error: recv_find_max_checkpoint() failed.");
} }
log_mutex_exit(); log_mutex_exit();
} }
...@@ -3999,7 +3977,7 @@ static bool xtrabackup_backup_low() ...@@ -3999,7 +3977,7 @@ static bool xtrabackup_backup_low()
metadata_last_lsn = log_copy_scanned_lsn; metadata_last_lsn = log_copy_scanned_lsn;
if (!xtrabackup_stream_metadata(ds_meta)) { if (!xtrabackup_stream_metadata(ds_meta)) {
msg("mariabackup: Error: failed to stream metadata.\n"); msg("Error: failed to stream metadata.");
return false; return false;
} }
if (xtrabackup_extra_lsndir) { if (xtrabackup_extra_lsndir) {
...@@ -4008,15 +3986,15 @@ static bool xtrabackup_backup_low() ...@@ -4008,15 +3986,15 @@ static bool xtrabackup_backup_low()
sprintf(filename, "%s/%s", xtrabackup_extra_lsndir, sprintf(filename, "%s/%s", xtrabackup_extra_lsndir,
XTRABACKUP_METADATA_FILENAME); XTRABACKUP_METADATA_FILENAME);
if (!xtrabackup_write_metadata(filename)) { if (!xtrabackup_write_metadata(filename)) {
msg("mariabackup: Error: failed to write metadata " msg("Error: failed to write metadata "
"to '%s'.\n", filename); "to '%s'.", filename);
return false; return false;
} }
sprintf(filename, "%s/%s", xtrabackup_extra_lsndir, sprintf(filename, "%s/%s", xtrabackup_extra_lsndir,
XTRABACKUP_INFO); XTRABACKUP_INFO);
if (!write_xtrabackup_info(mysql_connection, filename, false)) { if (!write_xtrabackup_info(mysql_connection, filename, false)) {
msg("mariabackup: Error: failed to write info " msg("Error: failed to write info "
"to '%s'.\n", filename); "to '%s'.", filename);
return false; return false;
} }
} }
...@@ -4039,19 +4017,19 @@ xtrabackup_backup_func() ...@@ -4039,19 +4017,19 @@ xtrabackup_backup_func()
pthread_cond_init(&scanned_lsn_cond, NULL); pthread_cond_init(&scanned_lsn_cond, NULL);
#ifdef USE_POSIX_FADVISE #ifdef USE_POSIX_FADVISE
msg("mariabackup: uses posix_fadvise().\n"); msg("uses posix_fadvise().");
#endif #endif
/* cd to datadir */ /* cd to datadir */
if (my_setwd(mysql_real_data_home,MYF(MY_WME))) if (my_setwd(mysql_real_data_home,MYF(MY_WME)))
{ {
msg("mariabackup: cannot my_setwd %s\n", mysql_real_data_home); msg("my_setwd() failed , %s", mysql_real_data_home);
return(false); return(false);
} }
msg("mariabackup: cd to %s\n", mysql_real_data_home); msg("cd to %s", mysql_real_data_home);
encryption_plugin_backup_init(mysql_connection); encryption_plugin_backup_init(mysql_connection);
msg("mariabackup: open files limit requested %u, set to %u\n", msg("open files limit requested %u, set to %u",
(uint) xb_open_files_limit, (uint) xb_open_files_limit,
xb_set_max_open_files(xb_open_files_limit)); xb_set_max_open_files(xb_open_files_limit));
...@@ -4066,12 +4044,6 @@ xtrabackup_backup_func() ...@@ -4066,12 +4044,6 @@ xtrabackup_backup_func()
log_file_op = backup_file_op; log_file_op = backup_file_op;
metadata_to_lsn = 0; metadata_to_lsn = 0;
if (xb_close_files)
msg("mariabackup: warning: close-files specified. Use it "
"at your own risk. If there are DDL operations like table DROP TABLE "
"or RENAME TABLE during the backup, inconsistent backup will be "
"produced.\n");
/* initialize components */ /* initialize components */
if(innodb_init_param()) { if(innodb_init_param()) {
fail: fail:
...@@ -4100,21 +4072,21 @@ xtrabackup_backup_func() ...@@ -4100,21 +4072,21 @@ xtrabackup_backup_func()
} else if (0 == ut_strcmp(srv_file_flush_method_str, "O_DIRECT")) { } else if (0 == ut_strcmp(srv_file_flush_method_str, "O_DIRECT")) {
srv_file_flush_method = SRV_O_DIRECT; srv_file_flush_method = SRV_O_DIRECT;
msg("mariabackup: using O_DIRECT\n"); msg("using O_DIRECT");
} else if (0 == ut_strcmp(srv_file_flush_method_str, "littlesync")) { } else if (0 == ut_strcmp(srv_file_flush_method_str, "littlesync")) {
srv_file_flush_method = SRV_LITTLESYNC; srv_file_flush_method = SRV_LITTLESYNC;
} else if (0 == ut_strcmp(srv_file_flush_method_str, "nosync")) { } else if (0 == ut_strcmp(srv_file_flush_method_str, "nosync")) {
srv_file_flush_method = SRV_NOSYNC; srv_file_flush_method = SRV_NOSYNC;
} else if (0 == ut_strcmp(srv_file_flush_method_str, "ALL_O_DIRECT")) { } else if (0 == ut_strcmp(srv_file_flush_method_str, "ALL_O_DIRECT")) {
srv_file_flush_method = SRV_ALL_O_DIRECT_FSYNC; srv_file_flush_method = SRV_ALL_O_DIRECT_FSYNC;
msg("mariabackup: using ALL_O_DIRECT\n"); msg("using ALL_O_DIRECT");
} else if (0 == ut_strcmp(srv_file_flush_method_str, } else if (0 == ut_strcmp(srv_file_flush_method_str,
"O_DIRECT_NO_FSYNC")) { "O_DIRECT_NO_FSYNC")) {
srv_file_flush_method = SRV_O_DIRECT_NO_FSYNC; srv_file_flush_method = SRV_O_DIRECT_NO_FSYNC;
msg("mariabackup: using O_DIRECT_NO_FSYNC\n"); msg("using O_DIRECT_NO_FSYNC");
} else { } else {
msg("mariabackup: Unrecognized value %s for " msg("Unrecognized value %s for "
"innodb_flush_method\n", srv_file_flush_method_str); "innodb_flush_method", srv_file_flush_method_str);
goto fail; goto fail;
} }
...@@ -4179,7 +4151,7 @@ xtrabackup_backup_func() ...@@ -4179,7 +4151,7 @@ xtrabackup_backup_func()
if (xtrabackup_extra_lsndir if (xtrabackup_extra_lsndir
&&!my_stat(xtrabackup_extra_lsndir,&stat_info,MYF(0)) &&!my_stat(xtrabackup_extra_lsndir,&stat_info,MYF(0))
&& (my_mkdir(xtrabackup_extra_lsndir,0777,MYF(0)) < 0)) { && (my_mkdir(xtrabackup_extra_lsndir,0777,MYF(0)) < 0)) {
msg("mariabackup: Error: cannot mkdir %d: %s\n", msg("Error: cannot mkdir %d: %s\n",
my_errno, xtrabackup_extra_lsndir); my_errno, xtrabackup_extra_lsndir);
goto fail; goto fail;
} }
...@@ -4187,7 +4159,7 @@ xtrabackup_backup_func() ...@@ -4187,7 +4159,7 @@ xtrabackup_backup_func()
/* create target dir if not exist */ /* create target dir if not exist */
if (!xtrabackup_stream_str && !my_stat(xtrabackup_target_dir,&stat_info,MYF(0)) if (!xtrabackup_stream_str && !my_stat(xtrabackup_target_dir,&stat_info,MYF(0))
&& (my_mkdir(xtrabackup_target_dir,0777,MYF(0)) < 0)){ && (my_mkdir(xtrabackup_target_dir,0777,MYF(0)) < 0)){
msg("mariabackup: Error: cannot mkdir %d: %s\n", msg("Error: cannot mkdir %d: %s\n",
my_errno, xtrabackup_target_dir); my_errno, xtrabackup_target_dir);
goto fail; goto fail;
} }
...@@ -4214,8 +4186,8 @@ xtrabackup_backup_func() ...@@ -4214,8 +4186,8 @@ xtrabackup_backup_func()
if (log_sys->log.format == 0) { if (log_sys->log.format == 0) {
old_format: old_format:
msg("mariabackup: Error: cannot process redo log" msg("Error: cannot process redo log"
" before MariaDB 10.2.2\n"); " before MariaDB 10.2.2");
log_mutex_exit(); log_mutex_exit();
goto log_fail; goto log_fail;
} }
...@@ -4254,8 +4226,8 @@ xtrabackup_backup_func() ...@@ -4254,8 +4226,8 @@ xtrabackup_backup_func()
memset(&stat_info, 0, sizeof(MY_STAT)); memset(&stat_info, 0, sizeof(MY_STAT));
dst_log_file = ds_open(ds_redo, "ib_logfile0", &stat_info); dst_log_file = ds_open(ds_redo, "ib_logfile0", &stat_info);
if (dst_log_file == NULL) { if (dst_log_file == NULL) {
msg("mariabackup: error: failed to open the target stream for " msg("§rror: failed to open the target stream for "
"'ib_logfile0'.\n"); "'ib_logfile0'.");
goto fail; goto fail;
} }
...@@ -4274,7 +4246,7 @@ xtrabackup_backup_func() ...@@ -4274,7 +4246,7 @@ xtrabackup_backup_func()
/* Write the log header. */ /* Write the log header. */
if (ds_write(dst_log_file, log_hdr, sizeof log_hdr)) { if (ds_write(dst_log_file, log_hdr, sizeof log_hdr)) {
log_write_fail: log_write_fail:
msg("mariabackup: error: write to logfile failed\n"); msg("error: write to logfile failed");
goto fail; goto fail;
} }
/* Adjust the checkpoint page. */ /* Adjust the checkpoint page. */
...@@ -4309,8 +4281,8 @@ xtrabackup_backup_func() ...@@ -4309,8 +4281,8 @@ xtrabackup_backup_func()
/* Populate fil_system with tablespaces to copy */ /* Populate fil_system with tablespaces to copy */
err = xb_load_tablespaces(); err = xb_load_tablespaces();
if (err != DB_SUCCESS) { if (err != DB_SUCCESS) {
msg("mariabackup: error: xb_load_tablespaces() failed with" msg("merror: xb_load_tablespaces() failed with"
" error %s.\n", ut_strerr(err)); " error %s.", ut_strerr(err));
fail_before_log_copying_thread_start: fail_before_log_copying_thread_start:
log_copying_running = false; log_copying_running = false;
goto fail; goto fail;
...@@ -4339,7 +4311,7 @@ xtrabackup_backup_func() ...@@ -4339,7 +4311,7 @@ xtrabackup_backup_func()
if (xtrabackup_parallel > 1) { if (xtrabackup_parallel > 1) {
msg("mariabackup: Starting %u threads for parallel data " msg("mariabackup: Starting %u threads for parallel data "
"files transfer\n", xtrabackup_parallel); "files transfer", xtrabackup_parallel);
} }
if (opt_lock_ddl_per_table) { if (opt_lock_ddl_per_table) {
...@@ -4353,7 +4325,7 @@ xtrabackup_backup_func() ...@@ -4353,7 +4325,7 @@ xtrabackup_backup_func()
datafiles_iter_t *it = datafiles_iter_new(fil_system); datafiles_iter_t *it = datafiles_iter_new(fil_system);
if (it == NULL) { if (it == NULL) {
msg("mariabackup: Error: datafiles_iter_new() failed.\n"); msg("mariabackup: Error: datafiles_iter_new() failed.");
goto fail; goto fail;
} }
...@@ -4414,16 +4386,16 @@ xtrabackup_backup_func() ...@@ -4414,16 +4386,16 @@ xtrabackup_backup_func()
} }
xtrabackup_destroy_datasinks(); xtrabackup_destroy_datasinks();
msg("mariabackup: Redo log (from LSN " LSN_PF " to " LSN_PF msg("Redo log (from LSN " LSN_PF " to " LSN_PF
") was copied.\n", checkpoint_lsn_start, log_copy_scanned_lsn); ") was copied.", checkpoint_lsn_start, log_copy_scanned_lsn);
xb_filters_free(); xb_filters_free();
xb_data_files_close(); xb_data_files_close();
/* Make sure that the latest checkpoint was included */ /* Make sure that the latest checkpoint was included */
if (metadata_to_lsn > log_copy_scanned_lsn) { if (metadata_to_lsn > log_copy_scanned_lsn) {
msg("mariabackup: error: failed to copy enough redo log (" msg("Error: failed to copy enough redo log ("
"LSN=" LSN_PF "; checkpoint LSN=" LSN_PF ").\n", "LSN=" LSN_PF "; checkpoint LSN=" LSN_PF ").",
log_copy_scanned_lsn, metadata_to_lsn); log_copy_scanned_lsn, metadata_to_lsn);
goto fail; goto fail;
} }
...@@ -4576,7 +4548,7 @@ void backup_fix_ddl(void) ...@@ -4576,7 +4548,7 @@ void backup_fix_ddl(void)
const char *dbname = buf; const char *dbname = buf;
char *p = strchr(buf, '/'); char *p = strchr(buf, '/');
if (p == 0) { if (p == 0) {
msg("Unexpected tablespace %s filename %s\n", space_name, name.c_str()); msg("Unexpected tablespace %s filename %s", space_name, name.c_str());
ut_a(0); ut_a(0);
} }
ut_a(p); ut_a(p);
...@@ -4595,16 +4567,6 @@ void backup_fix_ddl(void) ...@@ -4595,16 +4567,6 @@ void backup_fix_ddl(void)
continue; continue;
std::string dest_name(node->space->name); std::string dest_name(node->space->name);
dest_name.append(".new"); dest_name.append(".new");
#if 0
bool do_full_copy = ddl_tracker.optimized_ddl.find(n->space->id) != ddl_tracker.optimized_ddl.end();
if (do_full_copy) {
msg(
"Performing a full copy of the tablespace %s, because optimized (without redo logging) DDL operation"
"ran during backup. You can use set innodb_log_optimize_ddl=OFF to improve backup performance"
"in the future.\n",
n->space->name);
}
#endif
xtrabackup_copy_datafile(node, 0, dest_name.c_str()/*, do_full_copy ? ULONGLONG_MAX:UNIV_PAGE_SIZE */); xtrabackup_copy_datafile(node, 0, dest_name.c_str()/*, do_full_copy ? ULONGLONG_MAX:UNIV_PAGE_SIZE */);
} }
...@@ -4659,14 +4621,14 @@ xb_space_create_file( ...@@ -4659,14 +4621,14 @@ xb_space_create_file(
*file = os_file_create_simple_no_error_handling( *file = os_file_create_simple_no_error_handling(
0, path, OS_FILE_CREATE, OS_FILE_READ_WRITE, false, &ret); 0, path, OS_FILE_CREATE, OS_FILE_READ_WRITE, false, &ret);
if (!ret) { if (!ret) {
msg("mariabackup: cannot create file %s\n", path); msg("Can't create file %s", path);
return ret; return ret;
} }
ret = os_file_set_size(path, *file, ret = os_file_set_size(path, *file,
FIL_IBD_FILE_INITIAL_SIZE * UNIV_PAGE_SIZE); FIL_IBD_FILE_INITIAL_SIZE * UNIV_PAGE_SIZE);
if (!ret) { if (!ret) {
msg("mariabackup: cannot set size for file %s\n", path); msg("mariabackup: cannot set size for file %s", path);
os_file_close(*file); os_file_close(*file);
os_file_delete(0, path); os_file_delete(0, path);
return ret; return ret;
...@@ -4710,7 +4672,7 @@ xb_space_create_file( ...@@ -4710,7 +4672,7 @@ xb_space_create_file(
free(buf); free(buf);
if (!ret) { if (!ret) {
msg("mariabackup: could not write the first page to %s\n", msg("mariabackup: could not write the first page to %s",
path); path);
os_file_close(*file); os_file_close(*file);
os_file_delete(0, path); os_file_delete(0, path);
...@@ -4771,7 +4733,7 @@ xb_delta_open_matching_space( ...@@ -4771,7 +4733,7 @@ xb_delta_open_matching_space(
/* Create the database directory if it doesn't exist yet */ /* Create the database directory if it doesn't exist yet */
if (!os_file_create_directory(dest_dir, FALSE)) { if (!os_file_create_directory(dest_dir, FALSE)) {
msg("mariabackup: error: cannot create dir %s\n", dest_dir); msg("mariabackup: error: cannot create dir %s", dest_dir);
return file; return file;
} }
...@@ -4818,7 +4780,7 @@ xb_delta_open_matching_space( ...@@ -4818,7 +4780,7 @@ xb_delta_open_matching_space(
snprintf(tmpname, FN_REFLEN, "%s/xtrabackup_tmp_#" ULINTPF, snprintf(tmpname, FN_REFLEN, "%s/xtrabackup_tmp_#" ULINTPF,
dbname, fil_space->id); dbname, fil_space->id);
msg("mariabackup: Renaming %s to %s.ibd\n", msg("mariabackup: Renaming %s to %s.ibd",
fil_space->name, tmpname); fil_space->name, tmpname);
if (!fil_rename_tablespace( if (!fil_rename_tablespace(
...@@ -4826,7 +4788,7 @@ xb_delta_open_matching_space( ...@@ -4826,7 +4788,7 @@ xb_delta_open_matching_space(
fil_space->chain.start->name, fil_space->chain.start->name,
tmpname, NULL)) tmpname, NULL))
{ {
msg("mariabackup: Cannot rename %s to %s\n", msg("mariabackup: Cannot rename %s to %s",
fil_space->name, tmpname); fil_space->name, tmpname);
goto exit; goto exit;
} }
...@@ -4847,7 +4809,7 @@ xb_delta_open_matching_space( ...@@ -4847,7 +4809,7 @@ xb_delta_open_matching_space(
strncpy(tmpname, dest_space_name, FN_REFLEN); strncpy(tmpname, dest_space_name, FN_REFLEN);
msg("mariabackup: Renaming %s to %s\n", msg("mariabackup: Renaming %s to %s",
fil_space->name, dest_space_name); fil_space->name, dest_space_name);
if (!fil_rename_tablespace(fil_space->id, if (!fil_rename_tablespace(fil_space->id,
...@@ -4855,7 +4817,7 @@ xb_delta_open_matching_space( ...@@ -4855,7 +4817,7 @@ xb_delta_open_matching_space(
tmpname, tmpname,
NULL)) NULL))
{ {
msg("mariabackup: Cannot rename %s to %s\n", msg("mariabackup: Cannot rename %s to %s",
fil_space->name, dest_space_name); fil_space->name, dest_space_name);
goto exit; goto exit;
} }
...@@ -4883,8 +4845,7 @@ xb_delta_open_matching_space( ...@@ -4883,8 +4845,7 @@ xb_delta_open_matching_space(
*success = xb_space_create_file(real_name, info.space_id, *success = xb_space_create_file(real_name, info.space_id,
flags, &file); flags, &file);
} else { } else {
msg("mariabackup: Cannot create tablespace %s\n", msg("Can't create tablespace %s\n", dest_space_name);
dest_space_name);
} }
goto exit; goto exit;
...@@ -4954,12 +4915,12 @@ xtrabackup_apply_delta( ...@@ -4954,12 +4915,12 @@ xtrabackup_apply_delta(
page_size = info.page_size.physical(); page_size = info.page_size.physical();
page_size_shift = get_bit_shift(page_size); page_size_shift = get_bit_shift(page_size);
msg("mariabackup: page size for %s is %zu bytes\n", msg("page size for %s is %zu bytes",
src_path, page_size); src_path, page_size);
if (page_size_shift < 10 || if (page_size_shift < 10 ||
page_size_shift > UNIV_PAGE_SIZE_SHIFT_MAX) { page_size_shift > UNIV_PAGE_SIZE_SHIFT_MAX) {
msg("mariabackup: error: invalid value of page_size " msg("error: invalid value of page_size "
"(%zu bytes) read from %s\n", page_size, meta_path); "(%zu bytes) read from %s", page_size, meta_path);
goto error; goto error;
} }
...@@ -4968,7 +4929,7 @@ xtrabackup_apply_delta( ...@@ -4968,7 +4929,7 @@ xtrabackup_apply_delta(
OS_FILE_OPEN, OS_FILE_READ_WRITE, false, &success); OS_FILE_OPEN, OS_FILE_READ_WRITE, false, &success);
if (!success) { if (!success) {
os_file_get_last_error(TRUE); os_file_get_last_error(TRUE);
msg("mariabackup: error: cannot open %s\n", src_path); msg("error: can't open %s", src_path);
goto error; goto error;
} }
...@@ -4978,7 +4939,7 @@ xtrabackup_apply_delta( ...@@ -4978,7 +4939,7 @@ xtrabackup_apply_delta(
dbname, space_name, info, dbname, space_name, info,
dst_path, sizeof(dst_path), &success); dst_path, sizeof(dst_path), &success);
if (!success) { if (!success) {
msg("mariabackup: error: cannot open %s\n", dst_path); msg("error: can't open %s", dst_path);
goto error; goto error;
} }
...@@ -4991,7 +4952,7 @@ xtrabackup_apply_delta( ...@@ -4991,7 +4952,7 @@ xtrabackup_apply_delta(
(ut_align(incremental_buffer_base, (ut_align(incremental_buffer_base,
page_size)); page_size));
msg("Applying %s to %s...\n", src_path, dst_path); msg("Applying %s to %s...", src_path, dst_path);
while (!last_buffer) { while (!last_buffer) {
ulint cluster_header; ulint cluster_header;
...@@ -5014,8 +4975,8 @@ xtrabackup_apply_delta( ...@@ -5014,8 +4975,8 @@ xtrabackup_apply_delta(
last_buffer = TRUE; last_buffer = TRUE;
break; break;
default: default:
msg("mariabackup: error: %s seems not " msg("error: %s seems not "
".delta file.\n", src_path); ".delta file.", src_path);
goto error; goto error;
} }
...@@ -5114,7 +5075,7 @@ xtrabackup_apply_delta( ...@@ -5114,7 +5075,7 @@ xtrabackup_apply_delta(
os_file_close(src_file); os_file_close(src_file);
if (dst_file != OS_FILE_CLOSED) if (dst_file != OS_FILE_CLOSED)
os_file_close(dst_file); os_file_close(dst_file);
msg("mariabackup: Error: xtrabackup_apply_delta(): " msg("Error: xtrabackup_apply_delta(): "
"failed to apply %s to %s.\n", src_path, dst_path); "failed to apply %s to %s.\n", src_path, dst_path);
return FALSE; return FALSE;
} }
...@@ -5132,7 +5093,7 @@ std::string change_extension(std::string filename, std::string new_ext) { ...@@ -5132,7 +5093,7 @@ std::string change_extension(std::string filename, std::string new_ext) {
static void rename_file(const char *from,const char *to) { static void rename_file(const char *from,const char *to) {
msg("Renaming %s to %s\n", from, to); msg("Renaming %s to %s\n", from, to);
if (my_rename(from, to, MY_WME)) { if (my_rename(from, to, MY_WME)) {
msg("Cannot rename %s to %s errno %d", from, to, errno); msg("Can't rename %s to %s errno %d", from, to, errno);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
...@@ -5154,7 +5115,7 @@ typedef ibool (*handle_datadir_entry_func_t)( ...@@ -5154,7 +5115,7 @@ typedef ibool (*handle_datadir_entry_func_t)(
/** Rename, and replace destination file, if exists */ /** Rename, and replace destination file, if exists */
static void rename_force(const char *from, const char *to) { static void rename_force(const char *from, const char *to) {
if (access(to, R_OK) == 0) { if (access(to, R_OK) == 0) {
msg("Removing %s\n", to); msg("Removing %s", to);
if (my_delete(to, MYF(MY_WME))) { if (my_delete(to, MYF(MY_WME))) {
msg("Can't remove %s, errno %d", to, errno); msg("Can't remove %s, errno %d", to, errno);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
...@@ -5274,16 +5235,14 @@ xb_process_datadir( ...@@ -5274,16 +5235,14 @@ xb_process_datadir(
os_file_closedir(dbdir); os_file_closedir(dbdir);
} else { } else {
msg("mariabackup: Cannot open dir %s\n", msg("Can't open dir %s", path);
path);
} }
/* single table tablespaces */ /* single table tablespaces */
dir = os_file_opendir(path, FALSE); dir = os_file_opendir(path, FALSE);
if (dir == NULL) { if (dir == NULL) {
msg("mariabackup: Cannot open dir %s\n", msg("Can't open dir %s", path);
path);
} }
ret = fil_file_readdir_next_file(&err, path, dir, ret = fil_file_readdir_next_file(&err, path, dir,
...@@ -5379,7 +5338,7 @@ store_binlog_info(const char* filename, const char* name, ulonglong pos) ...@@ -5379,7 +5338,7 @@ store_binlog_info(const char* filename, const char* name, ulonglong pos)
FILE *fp = fopen(filename, "w"); FILE *fp = fopen(filename, "w");
if (!fp) { if (!fp) {
msg("mariabackup: failed to open '%s'\n", filename); msg("mariabackup: failed to open '%s'", filename);
return(false); return(false);
} }
...@@ -5400,7 +5359,7 @@ static std::string read_file_as_string(const std::string file) { ...@@ -5400,7 +5359,7 @@ static std::string read_file_as_string(const std::string file) {
char content[FN_REFLEN]; char content[FN_REFLEN];
FILE *f = fopen(file.c_str(), "r"); FILE *f = fopen(file.c_str(), "r");
if (!f) { if (!f) {
msg("Can not open %s\n", file.c_str()); msg("Can not open %s", file.c_str());
} }
size_t len = fread(content, 1, FN_REFLEN, f); size_t len = fread(content, 1, FN_REFLEN, f);
fclose(f); fclose(f);
...@@ -5497,11 +5456,10 @@ xtrabackup_prepare_func(char** argv) ...@@ -5497,11 +5456,10 @@ xtrabackup_prepare_func(char** argv)
if (my_setwd(xtrabackup_real_target_dir,MYF(MY_WME))) if (my_setwd(xtrabackup_real_target_dir,MYF(MY_WME)))
{ {
msg("mariabackup: cannot my_setwd %s\n", msg("can't my_setwd %s", xtrabackup_real_target_dir);
xtrabackup_real_target_dir);
return(false); return(false);
} }
msg("mariabackup: cd to %s\n", xtrabackup_real_target_dir); msg("cd to %s", xtrabackup_real_target_dir);
fil_path_to_mysql_datadir = "."; fil_path_to_mysql_datadir = ".";
...@@ -5537,32 +5495,31 @@ xtrabackup_prepare_func(char** argv) ...@@ -5537,32 +5495,31 @@ xtrabackup_prepare_func(char** argv)
XTRABACKUP_METADATA_FILENAME); XTRABACKUP_METADATA_FILENAME);
if (!xtrabackup_read_metadata(metadata_path)) { if (!xtrabackup_read_metadata(metadata_path)) {
msg("mariabackup: Error: failed to read metadata from '%s'\n", msg("Error: failed to read metadata from '%s'\n",
metadata_path); metadata_path);
return(false); return(false);
} }
if (!strcmp(metadata_type, "full-backuped")) { if (!strcmp(metadata_type, "full-backuped")) {
if (xtrabackup_incremental) { if (xtrabackup_incremental) {
msg("mariabackup: error: applying incremental backup " msg("error: applying incremental backup "
"needs a prepared target.\n"); "needs a prepared target.");
return(false); return(false);
} }
msg("mariabackup: This target seems to be not prepared yet.\n"); msg("This target seems to be not prepared yet.");
} else if (!strcmp(metadata_type, "log-applied")) { } else if (!strcmp(metadata_type, "log-applied")) {
msg("mariabackup: This target seems to be already prepared.\n"); msg("This target seems to be already prepared.");
} else { } else {
msg("mariabackup: This target does not have correct metadata.\n"); msg("This target does not have correct metadata.");
return(false); return(false);
} }
bool ok = !xtrabackup_incremental bool ok = !xtrabackup_incremental
|| metadata_to_lsn == incremental_lsn; || metadata_to_lsn == incremental_lsn;
if (!ok) { if (!ok) {
msg("mariabackup: error: This incremental backup seems " msg("error: This incremental backup seems "
"not to be proper for the target.\n" "not to be proper for the target. Check 'to_lsn' of the target and "
"mariabackup: Check 'to_lsn' of the target and " "'from_lsn' of the incremental.");
"'from_lsn' of the incremental.\n");
return(false); return(false);
} }
...@@ -5639,9 +5596,10 @@ xtrabackup_prepare_func(char** argv) ...@@ -5639,9 +5596,10 @@ xtrabackup_prepare_func(char** argv)
srv_n_write_io_threads = 4; srv_n_write_io_threads = 4;
} }
msg("mariabackup: Starting InnoDB instance for recovery.\n" msg("Starting InnoDB instance for recovery.");
"mariabackup: Using %lld bytes for buffer pool "
"(set by --use-memory parameter)\n", xtrabackup_use_memory); msg("mariabackup: Using %lld bytes for buffer pool "
"(set by --use-memory parameter)", xtrabackup_use_memory);
srv_max_buf_pool_modified_pct = (double)max_buf_pool_modified_pct; srv_max_buf_pool_modified_pct = (double)max_buf_pool_modified_pct;
...@@ -5669,7 +5627,7 @@ xtrabackup_prepare_func(char** argv) ...@@ -5669,7 +5627,7 @@ xtrabackup_prepare_func(char** argv)
const char* name = reinterpret_cast<const char*>( const char* name = reinterpret_cast<const char*>(
TRX_SYS_MYSQL_LOG_INFO + TRX_SYS_MYSQL_LOG_NAME TRX_SYS_MYSQL_LOG_INFO + TRX_SYS_MYSQL_LOG_NAME
+ sys_header); + sys_header);
msg("Last binlog file %s, position %llu\n", name, pos); msg("Last binlog file %s, position %llu", name, pos);
/* output to xtrabackup_binlog_pos_innodb and /* output to xtrabackup_binlog_pos_innodb and
(if backup_safe_binlog_info was available on (if backup_safe_binlog_info was available on
...@@ -5692,7 +5650,7 @@ xtrabackup_prepare_func(char** argv) ...@@ -5692,7 +5650,7 @@ xtrabackup_prepare_func(char** argv)
&& srv_start_lsn < target_lsn) { && srv_start_lsn < target_lsn) {
msg("mariabackup: error: " msg("mariabackup: error: "
"The log was only applied up to LSN " LSN_PF "The log was only applied up to LSN " LSN_PF
", instead of " LSN_PF "\n", ", instead of " LSN_PF,
srv_start_lsn, target_lsn); srv_start_lsn, target_lsn);
ok = false; ok = false;
} }
...@@ -5720,13 +5678,13 @@ xtrabackup_prepare_func(char** argv) ...@@ -5720,13 +5678,13 @@ xtrabackup_prepare_func(char** argv)
if (!xtrabackup_write_metadata(filename)) { if (!xtrabackup_write_metadata(filename)) {
msg("mariabackup: Error: failed to write metadata " msg("mariabackup: Error: failed to write metadata "
"to '%s'\n", filename); "to '%s'", filename);
ok = false; ok = false;
} else if (xtrabackup_extra_lsndir) { } else if (xtrabackup_extra_lsndir) {
sprintf(filename, "%s/%s", xtrabackup_extra_lsndir, XTRABACKUP_METADATA_FILENAME); sprintf(filename, "%s/%s", xtrabackup_extra_lsndir, XTRABACKUP_METADATA_FILENAME);
if (!xtrabackup_write_metadata(filename)) { if (!xtrabackup_write_metadata(filename)) {
msg("mariabackup: Error: failed to write " msg("mariabackup: Error: failed to write "
"metadata to '%s'\n", filename); "metadata to '%s'", filename);
ok = false; ok = false;
} }
} }
...@@ -5841,7 +5799,7 @@ int check_privilege( ...@@ -5841,7 +5799,7 @@ int check_privilege(
{ {
if (!has_privilege(granted_priv, if (!has_privilege(granted_priv,
required, target_database, target_table)) { required, target_database, target_table)) {
msg("%s: missing required privilege %s on %s.%s\n", msg("%s: missing required privilege %s on %s.%s",
(error == PRIVILEGE_ERROR ? "Error" : "Warning"), (error == PRIVILEGE_ERROR ? "Error" : "Warning"),
required, target_database, target_table); required, target_database, target_table);
return error; return error;
...@@ -5930,7 +5888,7 @@ xb_init() ...@@ -5930,7 +5888,7 @@ xb_init()
&& !opt_safe_slave_backup) { && !opt_safe_slave_backup) {
msg("Error: --slave-info is used with --no-lock but " msg("Error: --slave-info is used with --no-lock but "
"without --safe-slave-backup. The binlog position " "without --safe-slave-backup. The binlog position "
"cannot be consistent with the backup data.\n"); "cannot be consistent with the backup data.");
return(false); return(false);
} }
...@@ -6156,7 +6114,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server) ...@@ -6156,7 +6114,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server)
msg("mariabackup: Error: --defaults-file " msg("mariabackup: Error: --defaults-file "
"must be specified first on the command " "must be specified first on the command "
"line\n"); "line");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (optend - argv[i] == 21 && if (optend - argv[i] == 21 &&
...@@ -6213,7 +6171,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server) ...@@ -6213,7 +6171,7 @@ handle_options(int argc, char **argv, char ***argv_client, char ***argv_server)
if (!server_option) { if (!server_option) {
msg("mariabackup: Error:" msg("mariabackup: Error:"
" unknown argument: '%s'\n", opt); " unknown argument: '%s'", opt);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
...@@ -6313,7 +6271,7 @@ int main(int argc, char **argv) ...@@ -6313,7 +6271,7 @@ int main(int argc, char **argv)
mysql_mutex_destroy(&LOCK_error_log); mysql_mutex_destroy(&LOCK_error_log);
if (status == EXIT_SUCCESS) { if (status == EXIT_SUCCESS) {
msg_ts("completed OK!\n"); msg("completed OK!");
} }
return status; return status;
...@@ -6331,7 +6289,7 @@ static int main_low(char** argv) ...@@ -6331,7 +6289,7 @@ static int main_low(char** argv)
&& !strcmp(mysql_data_home, "./")) { && !strcmp(mysql_data_home, "./")) {
if (!xtrabackup_print_param) if (!xtrabackup_print_param)
usage(); usage();
msg("\nmariabackup: Error: Please set parameter 'datadir'\n"); msg("mariabackup: Error: Please set parameter 'datadir'");
return(EXIT_FAILURE); return(EXIT_FAILURE);
} }
...@@ -6402,7 +6360,7 @@ static int main_low(char** argv) ...@@ -6402,7 +6360,7 @@ static int main_low(char** argv)
if (error) { if (error) {
msg("mariabackup: value '%s' may be wrong format for " msg("mariabackup: value '%s' may be wrong format for "
"incremental option.\n", xtrabackup_incremental); "incremental option.", xtrabackup_incremental);
return(EXIT_FAILURE); return(EXIT_FAILURE);
} }
} else if (xtrabackup_backup && xtrabackup_incremental_basedir) { } else if (xtrabackup_backup && xtrabackup_incremental_basedir) {
...@@ -6412,7 +6370,7 @@ static int main_low(char** argv) ...@@ -6412,7 +6370,7 @@ static int main_low(char** argv)
if (!xtrabackup_read_metadata(filename)) { if (!xtrabackup_read_metadata(filename)) {
msg("mariabackup: error: failed to read metadata from " msg("mariabackup: error: failed to read metadata from "
"%s\n", filename); "%s", filename);
return(EXIT_FAILURE); return(EXIT_FAILURE);
} }
...@@ -6425,7 +6383,7 @@ static int main_low(char** argv) ...@@ -6425,7 +6383,7 @@ static int main_low(char** argv)
if (!xtrabackup_read_metadata(filename)) { if (!xtrabackup_read_metadata(filename)) {
msg("mariabackup: error: failed to read metadata from " msg("mariabackup: error: failed to read metadata from "
"%s\n", filename); "%s", filename);
return(EXIT_FAILURE); return(EXIT_FAILURE);
} }
...@@ -6443,7 +6401,7 @@ static int main_low(char** argv) ...@@ -6443,7 +6401,7 @@ static int main_low(char** argv)
} }
if (xtrabackup_stream && !xtrabackup_backup) { if (xtrabackup_stream && !xtrabackup_backup) {
msg("Warning: --stream parameter is ignored, it only works together with --backup.\n"); msg("Warning: --stream parameter is ignored, it only works together with --backup.");
} }
if (!xb_init()) { if (!xb_init()) {
...@@ -6458,13 +6416,13 @@ static int main_low(char** argv) ...@@ -6458,13 +6416,13 @@ static int main_low(char** argv)
print_version(); print_version();
if (xtrabackup_incremental) { if (xtrabackup_incremental) {
msg("incremental backup from " LSN_PF " is enabled.\n", msg("incremental backup from " LSN_PF " is enabled.",
incremental_lsn); incremental_lsn);
} }
if (xtrabackup_export && innobase_file_per_table == FALSE) { if (xtrabackup_export && innobase_file_per_table == FALSE) {
msg("mariabackup: auto-enabling --innodb-file-per-table due to " msg("mariabackup: auto-enabling --innodb-file-per-table due to "
"the --export option\n"); "the --export option");
innobase_file_per_table = TRUE; innobase_file_per_table = TRUE;
} }
......
...@@ -71,7 +71,7 @@ extern char *xtrabackup_databases_file; ...@@ -71,7 +71,7 @@ extern char *xtrabackup_databases_file;
extern char *xtrabackup_tables_exclude; extern char *xtrabackup_tables_exclude;
extern char *xtrabackup_databases_exclude; extern char *xtrabackup_databases_exclude;
extern ibool xtrabackup_compress; extern uint xtrabackup_compress;
extern my_bool xtrabackup_backup; extern my_bool xtrabackup_backup;
extern my_bool xtrabackup_prepare; extern my_bool xtrabackup_prepare;
...@@ -86,14 +86,10 @@ extern int xtrabackup_parallel; ...@@ -86,14 +86,10 @@ extern int xtrabackup_parallel;
extern my_bool xb_close_files; extern my_bool xb_close_files;
extern const char *xtrabackup_compress_alg; extern const char *xtrabackup_compress_alg;
#ifdef __cplusplus
extern "C"{ extern uint xtrabackup_compress_threads;
#endif extern ulonglong xtrabackup_compress_chunk_size;
extern uint xtrabackup_compress_threads;
extern ulonglong xtrabackup_compress_chunk_size;
#ifdef __cplusplus
}
#endif
extern my_bool xtrabackup_export; extern my_bool xtrabackup_export;
extern char *xtrabackup_extra_lsndir; extern char *xtrabackup_extra_lsndir;
extern ulint xtrabackup_log_copy_interval; extern ulint xtrabackup_log_copy_interval;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment