---
src/smf/smfd/SmfUpgradeStep.cc | 31 +++++++++++++++++++++++++++----
1 file changed, 27 insertions(+), 4 deletions(-)
diff --git a/src/smf/smfd/SmfUpgradeStep.cc b/src/smf/smfd/SmfUpgradeStep.cc
index 909fe12..ebf94ca 100644
--- a/src/smf/smfd/SmfUpgradeStep.cc
+++ b/src/smf/smfd/SmfUpgradeStep.cc
@@ -890,11 +890,34 @@ bool
SmfUpgradeStep::setMaintenanceState(SmfActivationUnit &i_units) {
}
}
- if ((result = immUtil.doImmOperations(operations)) != SA_AIS_OK) {
+if ((result = immUtil.doImmOperations(operations)) != SA_AIS_OK) {
LOG_NO("Fails to set saAmfSUMaintenanceCampaign, rc=%s",
saf_error(result));
- rc = false;
- goto exit;
- }
+
+ // Fix for SF:2550
+
+ const uint32_t MAX_NO_RETRIES = 2;
+ uint32_t retry_cnt = 0;
+ int ret = SA_AIS_OK;
+ while (++retry_cnt <= MAX_NO_RETRIES) {
+ ret = immUtil.doImmOperations(operations);
+ if (ret != SA_AIS_OK && ret == SA_AIS_ERR_TRY_AGAIN) {
+ /*
+ * TRY_AGAIN is returned only when ccb is aborted
+ * with Resource abort in error string. Resource abort
in
+ * error string is checked presently for modify
operation.
+ */
+ continue;
+ }
+ }
+
+ if (ret != SA_AIS_OK){
+ LOG_NO("SmfUpgradeStep::setMaintenanceState(), fails to set all
saAmfSUMaintenanceCampaign attr");
+ rc = false;
+ goto exit;
+ }
+
+ }
+ // Fix for SF:2550
exit:
// Delete the created SmfImmModifyOperation instances
--
1.9.1
------------------------------------------------------------------------------
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