With this PR, I see the FLUSH ENGINE LOGS being executed now, but xtrabackup-v2 based SST still fails under MariaDB 10.1.13 with a similar rate - failing about 99% of the time if I have sysbench write workload running in the background on some other node.
However, additionally moving the "FLUSH ENGINE LOGS" to occur *before* the galera_info bits get run gives me a 100% pass rate over 1000 SST attempts. That change looks like this (based off the gl-sergei/2.3-xb-bug1570560 branch):
+ if (have_flush_engine_logs) {
+ msg_ts("Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...\n");
+ xb_mysql_query(mysql_connection,
+ "FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS", false);
+ }
+
/* The only reason why Galera/binlog info is written before
wait_for_ibbackup_log_copy_finish() is that after that call the xtrabackup
binary will start streamig a temporary copy of REDO log to stdout and
@@ -1277,11 +1283,6 @@ backup_start()
write_binlog_info(mysql_connection);
}
With this PR, I see the FLUSH ENGINE LOGS being executed now, but xtrabackup-v2 based SST still fails under MariaDB 10.1.13 with a similar rate - failing about 99% of the time if I have sysbench write workload running in the background on some other node.
However, additionally moving the "FLUSH ENGINE LOGS" to occur *before* the galera_info bits get run gives me a 100% pass rate over 1000 SST attempts. That change looks like this (based off the gl-sergei/2.3-xb-bug1570560 branch):
diff --git a/storage/ innobase/ xtrabackup/ src/backup_ copy.cc b/storage/ innobase/ xtrabackup/ src/backup_ copy.cc innobase/ xtrabackup/ src/backup_ copy.cc innobase/ xtrabackup/ src/backup_ copy.cc
index 22f28ec..2014835 100644
--- a/storage/
+++ b/storage/
@@ -1258,6 +1258,12 @@ backup_start()
}
}
+ if (have_flush_ engine_ logs) { query(mysql_ connection, for_ibbackup_ log_copy_ finish( ) is that after that call the xtrabackup binlog_ info(mysql_ connection) ;
+ msg_ts("Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...\n");
+ xb_mysql_
+ "FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS", false);
+ }
+
/* The only reason why Galera/binlog info is written before
wait_
binary will start streamig a temporary copy of REDO log to stdout and
@@ -1277,11 +1283,6 @@ backup_start()
write_
}
- if (have_flush_ engine_ logs) { query(mysql_ connection,
- msg_ts("Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...\n");
- xb_mysql_
- "FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS", false);
- }
return(true); innobase/ xtrabackup/ src/backup_ mysql.cc b/storage/ innobase/ xtrabackup/ src/backup_ mysql.cc innobase/ xtrabackup/ src/backup_ mysql.cc innobase/ xtrabackup/ src/backup_ mysql.cc vars(MYSQL *connection) galera_ enabled = true;
}
diff --git a/storage/
index 26a0870..3d43551 100644
--- a/storage/
+++ b/storage/
@@ -374,7 +374,7 @@ get_mysql_
have_
}
- if (strcmp( version_ var, "5.5") >= 0) { "5.[123] .*", version_var, FNM_PATHNAME) != 0) { flush_engine_ logs = true;
+ if (fnmatch(
have_
}