diff options
author | 2021-05-24 22:03:42 +0000 | |
---|---|---|
committer | 2021-05-24 22:09:54 +0000 | |
commit | a1d7017ff795640b0e2070f1ace2f2331017beb3 (patch) | |
tree | 44ea417a079e1d1349a17efb73dde9195a33b39b /libs/binder/IServiceManager.cpp | |
parent | 3caff151fed6d44f83aa616e95b26fb3e9f70005 (diff) |
libbinder: servicemanagement errors
Bug: 188853469
Test: boot, check logs for spam (don't see any on boot)
Change-Id: If1f2f202e6f273b6a1a34d7a2abf4fe2bdcfc159
Diffstat (limited to 'libs/binder/IServiceManager.cpp')
-rw-r--r-- | libs/binder/IServiceManager.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/libs/binder/IServiceManager.cpp b/libs/binder/IServiceManager.cpp index f684cf672f..47dd32e525 100644 --- a/libs/binder/IServiceManager.cpp +++ b/libs/binder/IServiceManager.cpp @@ -320,14 +320,18 @@ sp<IBinder> ServiceManagerShim::waitForService(const String16& name16) const std::string name = String8(name16).c_str(); sp<IBinder> out; - if (!mTheRealServiceManager->getService(name, &out).isOk()) { + if (Status status = mTheRealServiceManager->getService(name, &out); !status.isOk()) { + ALOGW("Failed to getService in waitForService for %s: %s", name.c_str(), + status.toString8().c_str()); return nullptr; } if (out != nullptr) return out; sp<Waiter> waiter = sp<Waiter>::make(); - if (!mTheRealServiceManager->registerForNotifications( - name, waiter).isOk()) { + if (Status status = mTheRealServiceManager->registerForNotifications(name, waiter); + !status.isOk()) { + ALOGW("Failed to registerForNotifications in waitForService for %s: %s", name.c_str(), + status.toString8().c_str()); return nullptr; } Defer unregister ([&] { @@ -360,7 +364,9 @@ sp<IBinder> ServiceManagerShim::waitForService(const String16& name16) // - init gets death signal, but doesn't know it needs to restart // the service // - we need to request service again to get it to start - if (!mTheRealServiceManager->getService(name, &out).isOk()) { + if (Status status = mTheRealServiceManager->getService(name, &out); !status.isOk()) { + ALOGW("Failed to getService in waitForService on later try for %s: %s", name.c_str(), + status.toString8().c_str()); return nullptr; } if (out != nullptr) return out; @@ -369,7 +375,10 @@ sp<IBinder> ServiceManagerShim::waitForService(const String16& name16) bool ServiceManagerShim::isDeclared(const String16& name) { bool declared; - if (!mTheRealServiceManager->isDeclared(String8(name).c_str(), &declared).isOk()) { + if (Status status = mTheRealServiceManager->isDeclared(String8(name).c_str(), &declared); + !status.isOk()) { + ALOGW("Failed to get isDeclard for %s: %s", String8(name).c_str(), + status.toString8().c_str()); return false; } return declared; @@ -377,7 +386,11 @@ bool ServiceManagerShim::isDeclared(const String16& name) { Vector<String16> ServiceManagerShim::getDeclaredInstances(const String16& interface) { std::vector<std::string> out; - if (!mTheRealServiceManager->getDeclaredInstances(String8(interface).c_str(), &out).isOk()) { + if (Status status = + mTheRealServiceManager->getDeclaredInstances(String8(interface).c_str(), &out); + !status.isOk()) { + ALOGW("Failed to getDeclaredInstances for %s: %s", String8(interface).c_str(), + status.toString8().c_str()); return {}; } @@ -391,7 +404,10 @@ Vector<String16> ServiceManagerShim::getDeclaredInstances(const String16& interf std::optional<String16> ServiceManagerShim::updatableViaApex(const String16& name) { std::optional<std::string> declared; - if (!mTheRealServiceManager->updatableViaApex(String8(name).c_str(), &declared).isOk()) { + if (Status status = mTheRealServiceManager->updatableViaApex(String8(name).c_str(), &declared); + !status.isOk()) { + ALOGW("Failed to get updatableViaApex for %s: %s", String8(name).c_str(), + status.toString8().c_str()); return std::nullopt; } return declared ? std::optional<String16>(String16(declared.value().c_str())) : std::nullopt; |