Handle hidl transaction errors in ConfigStore

Test: surface flinger not failing, android now bootsup

Bug: b/36445794
Change-Id: I64cc404bec71f5e4eea2e0034f07b86fb60a3e32
Merged-In: I22fa7aab9fa92bc04333aaa0eef45891ebeba8e7
(cherry picked from commit 076b792ade608a7fdf4e600a42550ad17296a39e)
diff --git a/configstore/utils/include/configstore/Utils.h b/configstore/utils/include/configstore/Utils.h
index 98ccae9..42bf002 100644
--- a/configstore/utils/include/configstore/Utils.h
+++ b/configstore/utils/include/configstore/Utils.h
@@ -20,6 +20,10 @@
 #include <hidl/Status.h>
 #include <stdatomic.h>
 
+#pragma push_macro("LOG_TAG")
+#undef LOG_TAG
+#define LOG_TAG "ConfigStoreUtil"
+
 namespace android {
 namespace hardware {
 namespace configstore {
@@ -39,9 +43,11 @@
             // fallback to the default value
             ret.specified = false;
         } else {
-            (*configs.*func)([&ret](V v) {
-                ret = v;
-            });
+            auto status = (*configs.*func)([&ret](V v) { ret = v; });
+            if (!status.isOk()) {
+                ALOGE("HIDL call failed. %s", status.description().c_str());
+                ret.specified = false;
+            }
         }
 
         return ret;
@@ -91,4 +97,6 @@
 }  // namespace hardware
 }  // namespace android
 
+#pragma pop_macro("LOG_TAG")
+
 #endif  // ANDROID_HARDWARE_CONFIGSTORE_UTILS_H