From 6994166a09aabeb9e81bf3e7e64f078cdf3ffce2 Mon Sep 17 00:00:00 2001 From: Alex Buynytskyy Date: Sat, 11 Apr 2020 21:40:37 -0700 Subject: [PATCH] Reconnect to DataLoaders on restart. Bug: b/151241369 Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest IncrementalServiceTest Change-Id: I1532df63a2a36104dbd9cd90ee4e5f40bae00a6a --- services/incremental/IncrementalService.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp index 2c6bf0a80fe01..695b68bf71cb0 100644 --- a/services/incremental/IncrementalService.cpp +++ b/services/incremental/IncrementalService.cpp @@ -353,10 +353,14 @@ void IncrementalService::onSystemReady() { } } - /* TODO(b/151241369): restore data loaders on reboot. + if (mounts.empty()) { + return; + } + std::thread([this, mounts = std::move(mounts)]() { + mJni->initializeForCurrentThread(); for (auto&& ifs : mounts) { - if (prepareDataLoader(*ifs)) { + if (ifs->dataLoaderStub->create()) { LOG(INFO) << "Successfully started data loader for mount " << ifs->mountId; } else { // TODO(b/133435829): handle data loader start failures @@ -364,7 +368,6 @@ void IncrementalService::onSystemReady() { } } }).detach(); - */ } auto IncrementalService::getStorageSlotLocked() -> MountMap::iterator { @@ -1068,6 +1071,9 @@ bool IncrementalService::mountExistingImage(std::string_view root) { dataLoaderParams.arguments = loader.arguments(); } + prepareDataLoader(*ifs, std::move(dataLoaderParams), nullptr); + CHECK(ifs->dataLoaderStub); + std::vector> bindPoints; auto d = openDir(path::c_str(mountTarget)); while (auto e = ::readdir(d.get())) {