summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@mariadb.com>2018-12-18 17:31:52 +0100
committerVladislav Vaintroub <wlad@mariadb.com>2018-12-18 17:33:42 +0100
commit74659e55b7dffcdbb7f8b2cac4ccea92dacebd70 (patch)
treedf07aed150ff89e3558d3cd790add12f3b136c14 /extra
parent560df4792696a61d2ad7a191c1ea45dff11915e9 (diff)
downloadmariadb-git-74659e55b7dffcdbb7f8b2cac4ccea92dacebd70.tar.gz
MDEV-16268 : sporadic checksum mismatch when opening system tablespace in backup
Attempt to fix by retrying srv_sys_space.open_or_create() if it reports corruption.
Diffstat (limited to 'extra')
-rw-r--r--extra/mariabackup/xtrabackup.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc
index fe768696170..cbd5a72aa34 100644
--- a/extra/mariabackup/xtrabackup.cc
+++ b/extra/mariabackup/xtrabackup.cc
@@ -3362,8 +3362,15 @@ xb_load_tablespaces()
return(DB_ERROR);
}
- err = srv_sys_space.open_or_create(false, false, &sum_of_new_sizes,
- &flush_lsn);
+ for (int i= 0; i < 10; i++) {
+ err = srv_sys_space.open_or_create(false, false, &sum_of_new_sizes,
+ &flush_lsn);
+ if (err == DB_PAGE_CORRUPTED || err == DB_CORRUPTION) {
+ my_sleep(1000);
+ }
+ else
+ break;
+ }
if (err != DB_SUCCESS) {
msg("mariabackup: Could not open data files.\n");