diff --git a/src/model_repository_manager/model_repository_manager.cc b/src/model_repository_manager/model_repository_manager.cc index 8b06ad914..02d115c79 100644 --- a/src/model_repository_manager/model_repository_manager.cc +++ b/src/model_repository_manager/model_repository_manager.cc @@ -1028,8 +1028,8 @@ Status ModelRepositoryManager::RepositoryIndex( const bool ready_only, std::vector* index) { - std::set seen_models; - std::set duplicate_models; + std::unordered_set seen_models; + std::unordered_set duplicate_models; for (const auto& repository_path : repository_paths_) { const std::string model_namespace = (enable_model_namespacing_ ? repository_path : ""); @@ -1059,6 +1059,18 @@ ModelRepositoryManager::RepositoryIndex( } } + // Any loaded models which are + // not present in the local model repository + // are added to the index directly + + for (const auto& mapping_it : global_map_) { + for (const auto& model_id : mapping_it.second) { + if (seen_models.count(model_id) == 0) { + seen_models.insert(model_id); + } + } + } + ModelStateMap states = ModelStates(); for (const auto& model_id : seen_models) {