This happened for a runtime object update but might as well had been runtime object create or delete. Still have no clue why it got triggered in the first time. But somehow it did... /Hans
> -----Original Message----- > From: Hans Feldt [mailto:hans.fe...@ericsson.com] > Sent: den 27 november 2013 15:53 > To: Anders Björnerstedt; reddy.neelaka...@oracle.com > Cc: opensaf-devel@lists.sourceforge.net > Subject: Re: [devel] [PATCH 1 of 1] IMMND replies BAD_HANDLE if client node > is missing for non fevs request [#637] > > Hi, > > A question, I can see the log message " Client %llu went down so no response > " in many places in immnd. The patch only changes four > locations. What about for example immnd_evt_proc_rt_object_create? > > Thanks, > Hans > > > -----Original Message----- > > From: Anders Björnerstedt > > Sent: den 27 november 2013 15:06 > > To: reddy.neelaka...@oracle.com; Hans Feldt > > Cc: opensaf-devel@lists.sourceforge.net > > Subject: [PATCH 1 of 1] IMMND replies BAD_HANDLE if client node is missing > > for non fevs request [#637] > > > > osaf/services/saf/immsv/immnd/immnd_evt.c | 22 ++++++++++++---------- > > 1 files changed, 12 insertions(+), 10 deletions(-) > > > > > > For non fevs requests, if the local IMMND can not find the client node > > corresponding to the imm-handle sent by the client, then the local IMMND > > replies directly with SA_AIS_ERR_BAD_HANDLE, instead of just dropping > > the request and causing client to timeout. > > > > This short circuited behavior is not possible for fevs requests, > > because such requests are forwarded to the IMMD and broadcast back to all > > IMMNDs including the originating node. The originating node's IMMND then no > > longer has the reply information on the stack. It expects to find it in the > > client node on the heap. If the client node does not exist, then no reply, > > not even ERR_BAD_HANDLE, can be sent to the client of that fevs request. > > > > 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 > > @@ -1913,8 +1913,9 @@ static uint32_t immnd_evt_proc_admowner_ > > client_hdl = evt->info.adminitReq.client_hdl; > > immnd_client_node_get(cb, client_hdl, &cl_node); > > if (cl_node == NULL || cl_node->mIsStale) { > > - LOG_WA("IMMND - Client %llu went down so no response", > > client_hdl); > > - return rc; > > + LOG_WA("ERR_BAD_HANDLE: Client not found in server"); > > + send_evt.info.imma.info.admInitRsp.error = > > SA_AIS_ERR_BAD_HANDLE; > > + goto agent_rsp; > > } > > > > if (!immnd_is_immd_up(cb)) { > > @@ -2018,8 +2019,9 @@ static uint32_t immnd_evt_proc_impl_set( > > client_hdl = evt->info.implSet.client_hdl; > > immnd_client_node_get(cb, client_hdl, &cl_node); > > if (cl_node == NULL || cl_node->mIsStale) { > > - LOG_WA("IMMND - Client went down so no response"); > > - return rc; > > + LOG_WA("ERR_BAD_HANDLE: Client not found in server"); > > + send_evt.info.imma.info.implSetRsp.error = > > SA_AIS_ERR_BAD_HANDLE; > > + goto agent_rsp; > > } > > > > if (!immnd_is_immd_up(cb)) { > > @@ -2141,9 +2143,9 @@ static uint32_t immnd_evt_proc_ccb_init( > > client_hdl = evt->info.ccbinitReq.client_hdl; > > immnd_client_node_get(cb, client_hdl, &cl_node); > > if (cl_node == NULL || cl_node->mIsStale) { > > - LOG_WA("IMMND - Client went down so no response"); > > - TRACE_LEAVE(); > > - return rc; > > + LOG_WA("ERR_BAD_HANDLE: Client not found in server"); > > + send_evt.info.imma.info.ccbInitRsp.error = > > SA_AIS_ERR_BAD_HANDLE; > > + goto agent_rsp; > > } > > > > if (!immnd_is_immd_up(cb)) { > > @@ -2256,9 +2258,9 @@ static uint32_t immnd_evt_proc_rt_update > > client_hdl = evt->info.objModify.immHandle; > > immnd_client_node_get(cb, client_hdl, &cl_node); > > if (cl_node == NULL || cl_node->mIsStale) { > > - LOG_WA("IMMND - Client went down so no response"); > > - TRACE_LEAVE(); > > - return rc; > > + LOG_WA("ERR_BAD_HANDLE: Client not found in server"); > > + err = SA_AIS_ERR_BAD_HANDLE; > > + goto agent_rsp; > > } > > > > /* Do broadcast checks BEFORE updating model because we dont want > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk > _______________________________________________ > Opensaf-devel mailing list > Opensaf-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel