diff --git a/utilities/backupable/backupable_db.cc b/utilities/backupable/backupable_db.cc index 461894c06..36d033d9f 100644 --- a/utilities/backupable/backupable_db.cc +++ b/utilities/backupable/backupable_db.cc @@ -1468,8 +1468,13 @@ Status BackupEngineImpl::GarbageCollect() { // delete obsolete shared files std::vector shared_children; { - auto s = backup_env_->GetChildren(GetAbsolutePath(GetSharedFileRel()), - &shared_children); + auto shared_path = GetAbsolutePath(GetSharedFileRel()); + auto s = backup_env_->FileExists(shared_path); + if (s.ok()) { + s = backup_env_->GetChildren(shared_path, &shared_children); + } else if (s.IsNotFound()) { + s = Status::OK(); + } if (!s.ok()) { return s; } diff --git a/utilities/backupable/backupable_db_test.cc b/utilities/backupable/backupable_db_test.cc index d79746a9f..b8394f2c0 100644 --- a/utilities/backupable/backupable_db_test.cc +++ b/utilities/backupable/backupable_db_test.cc @@ -1341,8 +1341,8 @@ TEST_F(BackupableDBTest, ChangeManifestDuringBackupCreation) { TEST_F(BackupableDBTest, Issue921Test) { BackupEngine* backup_engine; backupable_options_->share_table_files = false; + env_->CreateDirIfMissing(backupable_options_->backup_dir); backupable_options_->backup_dir += "/new_dir"; - ASSERT_OK(BackupEngine::Open(env_, *backupable_options_, &backup_engine)); delete backup_engine;