Sometimes immutil_saImmOmAccessorGet_o2 returns TIMEOUT,
AMF should retry a few times.
---
 src/amf/amfnd/util.cc | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/amf/amfnd/util.cc b/src/amf/amfnd/util.cc
index bca642eac..a41fc338f 100644
--- a/src/amf/amfnd/util.cc
+++ b/src/amf/amfnd/util.cc
@@ -359,10 +359,20 @@ SaAisErrorT amf_saImmOmAccessorGet_o2(SaImmHandleT 
&immHandle,
                                       const std::string &objectName,
                                       const SaImmAttrNameT *attributeNames,
                                       SaImmAttrValuesT_2 ***attributes) {
+  unsigned int nTries = 1;
+
   // note: this will handle SA_AIS_ERR_BAD_HANDLE just once
   SaAisErrorT rc = immutil_saImmOmAccessorGet_o2(
       accessorHandle, objectName.c_str(), attributeNames, attributes);
 
+  while (rc == SA_AIS_ERR_TIMEOUT &&
+    nTries < immutilWrapperProfile.nTries) {
+    usleep(immutilWrapperProfile.retryInterval * 1000);
+    rc = immutil_saImmOmAccessorGet_o2(
+      accessorHandle, objectName.c_str(), attributeNames, attributes);
+    nTries++;
+  }
+
   if (rc == SA_AIS_ERR_BAD_HANDLE) {
     immutil_saImmOmAccessorFinalize(accessorHandle);
     immutil_saImmOmFinalize(immHandle);
-- 
2.11.0


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to