Fix failure caused by merge

This commit is contained in:
Meng Xu 2020-09-27 11:03:16 -07:00
parent bbc7ce581e
commit 1fb11858e6
2 changed files with 17 additions and 4 deletions

View File

@ -1413,6 +1413,18 @@ public:
return Optional<RestorableFileSet>();
}
if (logsOnly) {
state RestorableFileSet restorableSet;
state std::vector<LogFile> logFiles;
Version begin = beginVersion == invalidVersion ? 0 : beginVersion;
wait(store(logFiles, bc->listLogFiles(begin, targetVersion, false)));
// List logs in version order so log continuity can be analyzed
std::sort(logFiles.begin(), logFiles.end());
if (!logFiles.empty()) {
return getRestoreSetFromLogs(logFiles, targetVersion, restorableSet);
}
}
// Find the most recent keyrange snapshot through which we can restore filtered key ranges into targetVersion.
state std::vector<KeyspaceSnapshotFile> snapshots = wait(bc->listKeyspaceSnapshots());
state int i = snapshots.size() - 1;
@ -1524,7 +1536,8 @@ public:
Future<Optional<RestorableFileSet>> getRestoreSet(Version targetVersion, VectorRef<KeyRangeRef> keyRangesFilter,
bool logsOnly, Version beginVersion) final {
return getRestoreSet_impl(Reference<BackupContainerFileSystem>::addRef(this), targetVersion, keyRangesFilter);
return getRestoreSet_impl(Reference<BackupContainerFileSystem>::addRef(this), targetVersion, keyRangesFilter,
logsOnly, beginVersion);
}
private:

View File

@ -3473,10 +3473,10 @@ namespace fileBackup {
Optional<RestorableFileSet> restorable =
wait(bc->getRestoreSet(restoreVersion, VectorRef<KeyRangeRef>(), incremental, beginVersion));
if (!incremental) {
beginVersion = restorable.get().snapshot.beginVersion;
}
beginVersion = restorable.get().snapshot.beginVersion;
}
if(!restorable.present())
if(!restorable.present())
throw restore_missing_data();
// First version for which log data should be applied