Ack from me. /AndersBj
On 04/17/2015 03:25 PM, [email protected] wrote: > 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
