Hi Hung, Reviewed the code. Ack from me.
Thanks, Zoran -----Original Message----- From: Hung Nguyen [mailto:[email protected]] Sent: den 4 juli 2016 12:39 To: Zoran Milinkovic; [email protected] Cc: [email protected] Subject: [PATCH 1 of 1] imm: Return ERR_NO_RESOURCES to IMM when PBE fails to get ccb outcome [#1904] osaf/libs/common/immsv/immpbe_dump.cc | 4 ++-- osaf/services/saf/immsv/immpbed/immpbe_daemon.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) When getting ccb outcome after a restart, if PBE fails to find the CCB, ERR_NO_RESOURCES will be returned to IMM server. That way the ccb will be marked as resource aborted, and user will be able to retry the ccb. diff --git a/osaf/libs/common/immsv/immpbe_dump.cc b/osaf/libs/common/immsv/immpbe_dump.cc --- a/osaf/libs/common/immsv/immpbe_dump.cc +++ b/osaf/libs/common/immsv/immpbe_dump.cc @@ -3054,7 +3054,7 @@ SaAisErrorT getCcbOutcomeFromPbe(void* d sqlite3* dbHandle = (sqlite3 *) db_handle; sqlite3_stmt *stmt; int rc=0; - SaAisErrorT err = SA_AIS_ERR_BAD_OPERATION; + SaAisErrorT err = SA_AIS_ERR_NO_RESOURCES; bool badfile=false; TRACE_ENTER2("get Outcome for ccb:%llu", ccbId); @@ -3068,7 +3068,7 @@ SaAisErrorT getCcbOutcomeFromPbe(void* d if(rc == SQLITE_DONE) { sqlite3_reset(stmt); LOG_NO("getCcbOutcomeFromPbe: Could not find ccb %llu presume ABORT", ccbId); - err = SA_AIS_ERR_BAD_OPERATION; + err = SA_AIS_ERR_NO_RESOURCES; } else if(rc != SQLITE_ROW) { LOG_ER("SQL statement ('%s') failed because:\n %s", preparedSql[SQL_SEL_CCB_COMMITS], sqlite3_errmsg(dbHandle)); diff --git a/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc b/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc --- a/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc +++ b/osaf/services/saf/immsv/immpbed/immpbe_daemon.cc @@ -1377,7 +1377,7 @@ static SaAisErrorT saImmOiCcbCompletedCa if ((ccbUtilCcbData = ccbutil_findCcbData(ccbId)) == NULL) { LOG_WA("Failed to find CCB object for %llx/%llu - checking DB file for outcome", ccbId, ccbId); - rc = getCcbOutcomeFromPbe(sDbHandle, ccbId, sEpoch);/* rc=BAD_OPERATION or OK */ + rc = getCcbOutcomeFromPbe(sDbHandle, ccbId, sEpoch);/* rc=NO_RESOURCES or OK */ (void) ccbutil_getCcbData(ccbId); /*generate an empty record*/ goto done; } ------------------------------------------------------------------------------ Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San Francisco, CA to explore cutting-edge tech and listen to tech luminaries present their vision of the future. This family event has something for everyone, including kids. Get more information and register today. http://sdm.link/attshape _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
