osaf/services/saf/immsv/immnd/ImmModel.cc |   9 ++-------
 osaf/services/saf/immsv/immnd/immnd_evt.c |  18 ++++++------------
 2 files changed, 8 insertions(+), 19 deletions(-)


If an CCB is aborted, and the ERR_FAILED_OPERATION is returned to the client.

diff --git a/osaf/services/saf/immsv/immnd/ImmModel.cc 
b/osaf/services/saf/immsv/immnd/ImmModel.cc
--- a/osaf/services/saf/immsv/immnd/ImmModel.cc
+++ b/osaf/services/saf/immsv/immnd/ImmModel.cc
@@ -5629,10 +5629,8 @@ ImmModel::ccbAbort(SaUint32T ccbId, Conn
         }
     }
 
-    if (ccb->mVeto == SA_AIS_ERR_TIMEOUT) {
-        *nodeId = ccb->mOriginatingNode;
-        *client = ccb->mOriginatingConn;
-    }
+    *nodeId = ccb->mOriginatingNode;
+    *client = ccb->mOriginatingConn;
 
     ccb->mState = IMM_CCB_ABORTED;
     ccb->mVeto = SA_AIS_ERR_FAILED_OPERATION;
@@ -12502,11 +12500,8 @@ ImmModel::cleanTheBasement(InvocVector& 
                         (*i3)->mPbeRestartId, (*i3)->mId);
                 } else if(now - (*i3)->mWaitStartTime >= (int)max_oi_timeout) {
                     oi_timeout = 0;
-                    (*i3)->mVeto = SA_AIS_ERR_TIMEOUT;
                     TRACE_5("CCB %u timeout while waiting on implementer 
reply",
                         (*i3)->mId);
-                    setCcbErrorString(*i3, "Resource Error: CCB timeout while "
-                         "waiting on implementer reply");
                 }
 
                 if((*i3)->mState == IMM_CCB_CRITICAL) {
diff --git a/osaf/services/saf/immsv/immnd/immnd_evt.c 
b/osaf/services/saf/immsv/immnd/immnd_evt.c
--- a/osaf/services/saf/immsv/immnd/immnd_evt.c
+++ b/osaf/services/saf/immsv/immnd/immnd_evt.c
@@ -6620,8 +6620,9 @@ static void immnd_evt_ccb_abort(IMMND_CB
                dummyClient = 0; /* dont reply to client here*/
        }
 
-        if (nodeId) {
+        if (nodeId && cb->node_id == dummynodeId) {
                 *nodeId = dummynodeId;
+               TRACE_2("ccb:%u is originated from this node", ccbId);
         }
 
        if (arrSize) {
@@ -7350,10 +7351,9 @@ static void immnd_evt_proc_ccb_finalize(
        osafassert(evt);
        immnd_evt_ccb_abort(cb, evt->info.ccbId, &client, &nodeId);
 
-       if (nodeId && err == SA_AIS_OK) {
-               /* nodeId will be set only when OI ccb timeout happens. An OI 
timeout on 
-                  a ccb callback will always abort the CCB. so, any reply 
forwarded towards 
-                  the OM CCB client should be an ERR_FAILED_OPERATION and not 
ERR_TIMEOUT.
+       if (nodeId && err == SA_AIS_OK && !originatedAtThisNd) {
+               /* nodeId will be set when CCB is originated from this node.The 
CCB is aborted, 
+                  and the error response forwarded to client will be 
ERR_FAILED_OPERATION.
                */
 
                originatedAtThisNd = SA_TRUE;
@@ -7382,13 +7382,7 @@ static void immnd_evt_proc_ccb_finalize(
                memset(&send_evt, '\0', sizeof(IMMSV_EVT));
 
                send_evt.type = IMMSV_EVT_TYPE_IMMA;
-               send_evt.info.imma.info.errRsp.errStrings = 
immModel_ccbGrabErrStrings(cb, evt->info.ccbId);
-               if(send_evt.info.imma.info.errRsp.errStrings) {
-                       send_evt.info.imma.type = IMMA_EVT_ND2A_IMM_ERROR_2;
-               } else {
-                       send_evt.info.imma.type = IMMA_EVT_ND2A_IMM_ERROR;
-               }
-
+               send_evt.info.imma.type = IMMA_EVT_ND2A_IMM_ERROR;
                send_evt.info.imma.info.errRsp.error = err;
 
                TRACE_2("SENDRSP %u", err);

------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to