summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2019-01-31 02:20:51 +0530
committerMarko Mäkelä <marko.makela@mariadb.com>2019-02-01 08:53:50 +0200
commitf669cecbe30da820b93ebff0d3ed27d578627e47 (patch)
tree131e489c964bb37f59143e221d22943bf7808b82 /extra
parent20e19f69750466ac2c9bbf82ef5ba396fc842a08 (diff)
downloadmariadb-git-f669cecbe30da820b93ebff0d3ed27d578627e47.tar.gz
MDEV-18415 mariabackup.mdev-14447 test case fails with Table 'test.t' doesn't exist in engine
- Added retry logic if validation of first page fails with checksum mismatch.
Diffstat (limited to 'extra')
-rw-r--r--extra/mariabackup/xtrabackup.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc
index 87f8822c38b..6ba5d950104 100644
--- a/extra/mariabackup/xtrabackup.cc
+++ b/extra/mariabackup/xtrabackup.cc
@@ -3092,7 +3092,16 @@ xb_load_single_table_tablespace(
die("Can't open datafile %s", name);
}
- err = file->validate_first_page(&flush_lsn);
+ for (int i = 0; i < 10; i++) {
+ err = file->validate_first_page(&flush_lsn);
+ if (err != DB_CORRUPTION) {
+ break;
+ }
+
+ my_sleep(1000);
+ }
+
+ bool is_empty_file = file->exists() && file->is_empty_file();
if (err == DB_SUCCESS && file->space_id() != SRV_TMP_SPACE_ID) {
os_offset_t node_size = os_file_get_size(file->handle());
@@ -3124,9 +3133,7 @@ xb_load_single_table_tablespace(
delete file;
- if (err != DB_SUCCESS && err != DB_CORRUPTION && xtrabackup_backup) {
- /* allow corrupted first page for xtrabackup, it could be just
- zero-filled page, which we restore from redo log later */
+ if (err != DB_SUCCESS && xtrabackup_backup && !is_empty_file) {
die("Failed to not validate first page of the file %s, error %d",name, (int)err);
}
}