---

** [tickets:#1878] smf: Smfd must be thread safe when IMMND is restarted after 
the camaign start**

**Status:** accepted
**Milestone:** 4.7.2
**Created:** Tue Jun 14, 2016 09:18 AM UTC by Neelakanta Reddy
**Last Updated:** Tue Jun 14, 2016 09:18 AM UTC
**Owner:** Neelakanta Reddy


Steps to reproduce:
1. execute the campaign, and kill the immnd on the active node
2. Smfd asserted , syslog :

2016-05-26 09:14:14 SystemEvent osafsmfd SC-2-2 err ER updateImmAttr(): 
immutil_update_one_rattr FAILED, rc = 9, going to assert
2016-05-26 09:14:14 SystemEvent osafsmfd SC-2-2 err smfd_campaign_oi.cc:749: 
updateImmAttr: Assertion '0' failed.

3.  The smfd traces:

osafsmfd 
[3771:../../../../../../../opensaf/osaf/services/saf/smfsv/smfd/SmfCampaignXmlParser.cc:0275]
 << parseCampaignXml
Jun  1 19:56:17.384802 osafsmfd 
[3771:../../../../../../../opensaf/osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc:0211]
 >> setCampState
Jun  1 19:56:17.384806 osafsmfd 
[3771:../../../../../../../opensaf/osaf/services/saf/smfsv/smfd/SmfUpgradeCampaign.cc:0307]
 << setCampState
Jun  1 19:56:17.384814 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:2438]
 >> rt_object_update_common
Jun  1 19:56:17.404588 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_mds.c:0404] 
T3 IMMND DOWN
Jun  1 19:56:17.404613 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_db.c:0590] >> 
imma_mark_clients_stale
Jun  1 19:56:17.404624 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_db.c:0648] TR 
Stale marked client cl:1388 node:2020f
Jun  1 19:56:17.404632 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_db.c:0734] >> 
isExposed
Jun  1 19:56:17.404640 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_db.c:0786] TR 
OI CLIENT
----
----
----
Jun  1 19:56:18.828005 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:3412]
 << imma_oi_resurrect
Jun  1 19:56:18.828009 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:0555]
 T2 ERR_BAD_HANDLE: Failed to resurrect stale OI handle <c:414, n:2020f>
Jun  1 19:56:18.828014 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:0642]
 << saImmOiDispatch
Jun  1 19:56:18.828019 osafsmfd 
[3771:../../../../../../../opensaf/osaf/services/saf/smfsv/smfd/smfd_main.c:0351]
 TR main: saImmOiDispatch returned BAD_HANDLE
Jun  1 19:56:18.828024 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:0670]
 >> saImmOiFinalize
Jun  1 19:56:18.828029 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:0699]
 T4 ERR_LIBRARY: Overlapping use of IMM OI handle by multiple threads
Jun  1 19:56:18.828034 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:0838]
 << saImmOiFinalize
-----
-----
-----
Jun  1 19:59:35.208157 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:0515]
 >> saImmOiDispatch
Jun  1 19:59:35.208205 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:0642]
 << saImmOiDispatch
Jun  1 20:01:17.442890 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_proc.c:3180] 
T3 Client handle turned bad, IMMND restarted ?
Jun  1 20:01:17.442923 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:2655]
 T1 Handle 19e0002020f is stale
Jun  1 20:01:17.442934 osafsmfd 
[3771:../../../../../../../opensaf/osaf/libs/agents/saf/imma/imma_oi_api.c:2711]
 << rt_object_update_common
Jun  1 20:01:17.443080 osafsmfd 
[3771:../../../../../../../opensaf/osaf/services/saf/smfsv/smfd/smfd_campaign_oi.cc:0748]
 ER updateImmAttr(): immutil_update_one_rattr FAILED, rc = 9, going to assert
Jun  1 20:02:13.199670 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/common/ncs_main_pub.c:0223] TR
NCS:PROCESS_ID=3779
Jun  1 20:02:13.203430 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/leap/sysf_def.c:0090] TR 
INITIALIZING LEAP ENVIRONMENT
Jun  1 20:02:13.203715 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/leap/sysf_def.c:0123] TR DONE 
INITIALIZING LEAP ENVIRONMENT
Jun  1 20:02:13.203952 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/common/ncs_main_pub.c:0754] TR 
NCS:NODE_ID=0x0002020F
Jun  1 20:02:13.204509 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/mbcsv/mbcsv_dl_api.c:0059] >> 
mbcsv_lib_req
Jun  1 20:02:13.204522 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/mbcsv/mbcsv_dl_api.c:0096] >> 
mbcsv_lib_init
Jun  1 20:02:13.204530 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/mbcsv/mbcsv_mbx.c:0166] >> 
mbcsv_initialize_mbx_list
Jun  1 20:02:13.204535 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/mbcsv/mbcsv_mbx.c:0180] << 
mbcsv_initialize_mbx_list
Jun  1 20:02:13.204542 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/mbcsv/mbcsv_pwe_anc.c:0153] >> 
mbcsv_initialize_peer_list
Jun  1 20:02:13.204549 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/mbcsv/mbcsv_pwe_anc.c:0167] << 
mbcsv_initialize_peer_list
Jun  1 20:02:13.204553 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/mbcsv/mbcsv_dl_api.c:0075] << 
mbcsv_lib_req
Jun  1 20:02:13.204558 osafsmfd 
[3779:../../../../../../opensaf/osaf/libs/core/common/ncs_main_pub.c:0393] TR
MBCSV:MBCA:ON
Jun  1 20:02:13.204566 osafsmfd 
[3779:../../../../../../../opensaf/osaf/services/saf/smfsv/smfd/smfd_main.c:0176]
 >> initialize_smfd
Jun  1 20:02:13.204576 osafsmfd 
[3779:../../../../../../../opensaf/osaf/services/saf/smfsv/smfd/smfd_main.c:0113]
 >> smfd_cb_init

Analsys:

when the camaign is executed, there are campign thread and the main thread 
which shares, the same IMM-OI handle. The campign thread uses the IMM-OI handle 
for RtObjectUpdate. Sharing of the IMM handles is not supported, when IMMND is 
killed at the time of camaign execution, then there is chance that both camaign 
thread and main thread try to resurrect the OI handle, one of the thread gets 
BAD_HANDLE, because another thread is using, then SMFD get asserted.

solution:

Introduce mutex, when accessing IMM OI handle, between campaign thread and main 
thread.



---

Sent from sourceforge.net because [email protected] is 
subscribed to https://sourceforge.net/p/opensaf/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/opensaf/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets

Reply via email to