summaryrefslogtreecommitdiff
path: root/services/incremental/IncrementalService.cpp
diff options
context:
space:
mode:
author Songchun Fan <schfan@google.com> 2020-02-27 15:57:35 -0800
committer Songchun Fan <schfan@google.com> 2020-03-03 21:18:30 -0800
commit68645c42ac05ed901ff8c457f0ffa17ee8f6eb20 (patch)
tree137509c80f41983d16f803b30b551f8315bfeaf0 /services/incremental/IncrementalService.cpp
parent6381d6193ed699ef1df930f6b7bf1ac80ec467d0 (diff)
directly call data loader manager service from incremental service
BUG: 150406132 Test: atest service.incremental_test Test: atest PackageManagerShellCommandIncrementalTest Change-Id: I2bb75d5adae58d2471478f6a4d2354058d7b0dab
Diffstat (limited to 'services/incremental/IncrementalService.cpp')
-rw-r--r--services/incremental/IncrementalService.cpp36
1 files changed, 17 insertions, 19 deletions
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp
index 980ae083ad40..2426e8f29dca 100644
--- a/services/incremental/IncrementalService.cpp
+++ b/services/incremental/IncrementalService.cpp
@@ -155,7 +155,7 @@ std::string makeBindMdName() {
} // namespace
IncrementalService::IncFsMount::~IncFsMount() {
- incrementalService.mIncrementalManager->destroyDataLoader(mountId);
+ incrementalService.mDataLoaderManager->destroyDataLoader(mountId);
control.reset();
LOG(INFO) << "Unmounting and cleaning up mount " << mountId << " with root '" << root << '\'';
for (auto&& [target, _] : bindPoints) {
@@ -229,14 +229,14 @@ void IncrementalService::IncFsMount::cleanupFilesystem(std::string_view root) {
IncrementalService::IncrementalService(ServiceManagerWrapper&& sm, std::string_view rootDir)
: mVold(sm.getVoldService()),
- mIncrementalManager(sm.getIncrementalManager()),
+ mDataLoaderManager(sm.getDataLoaderManager()),
mIncFs(sm.getIncFs()),
mIncrementalDir(rootDir) {
if (!mVold) {
LOG(FATAL) << "Vold service is unavailable";
}
- if (!mIncrementalManager) {
- LOG(FATAL) << "IncrementalManager service is unavailable";
+ if (!mDataLoaderManager) {
+ LOG(FATAL) << "DataLoaderManagerService is unavailable";
}
mountExistingImages();
}
@@ -921,7 +921,6 @@ bool IncrementalService::startLoading(StorageId storage) const {
if (!ifs) {
return false;
}
- bool started = false;
std::unique_lock l(ifs->lock);
if (ifs->dataLoaderStatus != IDataLoaderStatusListener::DATA_LOADER_CREATED) {
if (ifs->dataLoaderReady.wait_for(l, Seconds(5)) == std::cv_status::timeout) {
@@ -929,11 +928,19 @@ bool IncrementalService::startLoading(StorageId storage) const {
return false;
}
}
- auto status = mIncrementalManager->startDataLoader(ifs->mountId, &started);
+ sp<IDataLoader> dataloader;
+ auto status = mDataLoaderManager->getDataLoader(ifs->mountId, &dataloader);
if (!status.isOk()) {
return false;
}
- return started;
+ if (!dataloader) {
+ return false;
+ }
+ status = dataloader->start();
+ if (!status.isOk()) {
+ return false;
+ }
+ return true;
}
void IncrementalService::mountExistingImages() {
@@ -1086,8 +1093,8 @@ bool IncrementalService::prepareDataLoader(IncrementalService::IncFsMount& ifs,
sp<IncrementalDataLoaderListener> listener =
new IncrementalDataLoaderListener(*this, *externalListener);
bool created = false;
- auto status = mIncrementalManager->prepareDataLoader(ifs.mountId, fsControlParcel, *dlp,
- listener, &created);
+ auto status = mDataLoaderManager->initializeDataLoader(ifs.mountId, *dlp, fsControlParcel,
+ listener, &created);
if (!status.isOk() || !created) {
LOG(ERROR) << "Failed to create a data loader for mount " << ifs.mountId;
return false;
@@ -1229,16 +1236,7 @@ binder::Status IncrementalService::IncrementalDataLoaderListener::onStatusChange
ifs->dataLoaderStatus = newStatus;
switch (newStatus) {
case IDataLoaderStatusListener::DATA_LOADER_NO_CONNECTION: {
- auto now = Clock::now();
- if (ifs->connectionLostTime.time_since_epoch().count() == 0) {
- ifs->connectionLostTime = now;
- break;
- }
- auto duration =
- std::chrono::duration_cast<Seconds>(now - ifs->connectionLostTime).count();
- if (duration >= 10) {
- incrementalService.mIncrementalManager->showHealthBlockedUI(mountId);
- }
+ // TODO(b/150411019): handle data loader connection loss
break;
}
case IDataLoaderStatusListener::DATA_LOADER_CONNECTION_OK: {