Re: [devel] [PATCH 1 of 1] imm: Return ERR_NO_RESOURCES to IMM when PBE fails to get ccb outcome [#1904]

2016-07-11 Thread Zoran Milinkovic
Hi Hung,

Reviewed the code.
Ack from me.

Thanks,
Zoran

-Original Message-
From: Hung Nguyen [mailto:hung.d.ngu...@dektech.com.au] 
Sent: den 4 juli 2016 12:39
To: Zoran Milinkovic; reddy.neelaka...@oracle.com
Cc: opensaf-devel@lists.sourceforge.net
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 Tech Expo July 15-16. Meet us at AT 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
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel


[devel] [PATCH 1 of 1] imm: Return ERR_NO_RESOURCES to IMM when PBE fails to get ccb outcome [#1904]

2016-07-04 Thread Hung Nguyen
 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 Tech Expo July 15-16. Meet us at AT 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
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel