Merge 10.4 into 10.5

This commit is contained in:
Marko Mäkelä 2020-09-23 11:32:43 +03:00
commit 882ce206db
115 changed files with 1601 additions and 2052 deletions

View file

@ -753,7 +753,6 @@ enum options_xtrabackup
OPT_INNODB_CHECKSUM_ALGORITHM,
OPT_INNODB_UNDO_DIRECTORY,
OPT_INNODB_UNDO_TABLESPACES,
OPT_INNODB_LOG_CHECKSUMS,
OPT_XTRA_INCREMENTAL_FORCE_SCAN,
OPT_DEFAULTS_GROUP,
OPT_CLOSE_FILES,
@ -2698,6 +2697,7 @@ static bool xtrabackup_copy_logfile(bool last = false)
ut_a(dst_log_file != NULL);
ut_ad(recv_sys.is_initialised());
bool overwritten_block = false;
lsn_t start_lsn;
lsn_t end_lsn;
@ -2723,6 +2723,11 @@ static bool xtrabackup_copy_logfile(bool last = false)
}
if (lsn == start_lsn) {
overwritten_block= !recv_sys.found_corrupt_log
&& log_block_calc_checksum_crc32(log_sys.buf) ==
log_block_get_checksum(log_sys.buf)
&& log_block_get_hdr_no(log_sys.buf) >
log_block_convert_lsn_to_no(start_lsn);
start_lsn = 0;
} else {
mutex_enter(&recv_sys.mutex);
@ -2733,9 +2738,13 @@ static bool xtrabackup_copy_logfile(bool last = false)
log_mutex_exit();
if (!start_lsn) {
die(recv_sys.found_corrupt_log
? "xtrabackup_copy_logfile() failed: corrupt log."
: "xtrabackup_copy_logfile() failed.");
const char *reason = recv_sys.found_corrupt_log
? "corrupt log."
: (overwritten_block
? "redo log block is overwritten, please increase redo log size with innodb_log_file_size parameter."
: "redo log block checksum does not match.");
die("xtrabackup_copy_logfile() failed: %s", reason);
return true;
}
} while (start_lsn == end_lsn);