Hi! This change makes NTF depend on CLM. CLM already depends on NTF, so it means we now have a circular dependency. I think you need to introduce a separate thread in NTF that handles all CLM API calls. Also, you need to handle the SA_AIS_ERR_BAD_HANDLE return code from CLM, at the very least when you get it from saClmDispatch(), and re-initialize the CLM handle if you get this error code.
regards, Anders Widell On 03/29/2016 11:02 AM, praveen.malv...@oracle.com wrote: > Summary: ntf: Integrate NTF service with CLM {#1639] V2 > Review request for Trac Ticket(s): #1639 > Peer Reviewer(s): Lennart, Minh, Mathi > Pull request to: <<LIST THE PERSON WITH PUSH ACCESS HERE>> > Affected branch(es): Default > Development branch: <<IF ANY GIVE THE REPO URL>> > > -------------------------------- > Impacted area Impact y/n > -------------------------------- > Docs n > Build system n > RPM/packaging n > Configuration files n > Startup scripts n > SAF services y > OpenSAF services n > Core libraries n > Samples n > Tests n > Other n > > > Comments (indicate scope for each "y" above): > --------------------------------------------- > This V2 is rebased over #79 and #1180. > > Minor functional change in patch 4 (ntfa patch): > During headless state if OpenSAF is stopped on payload,then A.01.02 clients > will not be recovered on that payload node. These clients will get > SA_AIS_ERR_UNAVAILABLE. This implements the comment that I had given on #1180. > > > changeset 1eca6814a649886e5ebc6b25b2ef62128f60474d > Author: praveen.malv...@oracle.com > Date: Tue, 29 Mar 2016 14:14:35 +0530 > > ntf: update README for NTFSv integration with CLM [#1639] > > No change from V1. > > Added information for: > -details of implementation. > -changes at NTFS. > -changes at NTFA. > > changeset 1e20a02074e8802601c5aa7977b8d2c0348e7afd > Author: praveen.malv...@oracle.com > Date: Tue, 29 Mar 2016 14:15:40 +0530 > > ntf: add new structure for message from NTFS to NTFA [#1639] > > No change from v1. > > New message structure to be used by NTFS to send CLM membership status > of > node to clients. > > changeset 9328a2a61cfd6da7450ff49b35fc1da8ef9bda42 > Author: praveen.malv...@oracle.com > Date: Tue, 29 Mar 2016 14:16:34 +0530 > > ntfs: add support for tracking CLM membership related events and act on > them > [#1639] > > No functional change, only rebased over #79. > > Changes include: > -subscribe with CLM service to track CLM membership status of nodes. > -send updates to ntf agent whenever there is any change in membership > status > of its node. > -maintain list of member nodes to be used for new clients. > -maintain SAF version of the clients and checkpoint it to standby also. > > changeset 465383691e1bb7de57965c268ae002e8ffb12c50 > Author: praveen.malv...@oracle.com > Date: Tue, 29 Mar 2016 14:17:24 +0530 > > ntfa: support for returning SA_AIS_ERR_UNAVAILABLE on non-member > node[#1639] > V2 > > V2 changes: > -Rebased over #1180 (Cloud resilience patch). > -During headless state, OpenSAF may get stopped on payload with NTF app > running. Since OpenSAF is not running on the payload, any A.01.02 NTF > client > should not be served on this node and this client should not be > recovered. > After first controller comes up, A.01.02 client will not be recovered > and > application will get SA_AIS_ERR_UNAVAILABLE upon which an app can call > saNtfFinalize() for freeing the resources. > > Changes include: > -maintain SAF version. > -minor version is updated from 01 to 02. > -ntfa will get NTFSV_CLM_NODE_STATUS_CALLBACK from NTFS for membership > status > of node. > -check is included in all apis, excluding saNTfFinalize(), to return > SA_AIS_ERR_UNAVAILABLE if node loses CLM membership. > > changeset 8f8657451f23c2ea6e8da565933d0d1c84999226 > Author: praveen.malv...@oracle.com > Date: Tue, 29 Mar 2016 14:18:21 +0530 > > ntf/safntf: update SAF version of ntfsend, ntfread and ntfsubscribe > [#1639] > > No change from V1.. > > SAF version for ntfsend, ntfread and ntfsubscribe is updated from > A.01.01 to > A.01.02. On a non member node all these commands will exit. > > changeset a2af4e8a5fdeb22cda818fe229a92bc2f0e1d40c > Author: praveen.malv...@oracle.com > Date: Tue, 29 Mar 2016 14:19:20 +0530 > > ntf/tests: add test cases for NTF functionality [#1639] > > No change from V1. > > New file tet_ntf_clm.c contains new test cases for testing this > funtionality. On a non-member node, ntf APIs must return > SA_AIS_ERR_UNAVAILABLE. > > > Complete diffstat: > ------------------ > osaf/libs/agents/saf/ntfa/ntfa.h | 2 + > osaf/libs/agents/saf/ntfa/ntfa_api.c | 226 > +++++++++++++++++++++++++- > osaf/libs/agents/saf/ntfa/ntfa_mds.c | 52 ++++++ > osaf/libs/agents/saf/ntfa/ntfa_util.c | 3 + > osaf/libs/common/ntfsv/include/ntfsv_defs.h | 6 +- > osaf/libs/common/ntfsv/include/ntfsv_msg.h | 7 + > osaf/services/saf/ntfsv/README | 74 ++++++++ > osaf/services/saf/ntfsv/ntfs/Makefile.am | 2 + > osaf/services/saf/ntfsv/ntfs/NtfAdmin.cc | 203 > +++++++++++++++++++++++- > osaf/services/saf/ntfsv/ntfs/NtfAdmin.hh | 10 +- > osaf/services/saf/ntfsv/ntfs/NtfClient.cc | 42 +++++ > osaf/services/saf/ntfsv/ntfs/NtfClient.hh | 4 + > osaf/services/saf/ntfsv/ntfs/ntfs.h | 1 + > osaf/services/saf/ntfsv/ntfs/ntfs_cb.h | 5 + > osaf/services/saf/ntfsv/ntfs/ntfs_clm.c | 124 ++++++++++++++ > osaf/services/saf/ntfsv/ntfs/ntfs_com.c | 50 +++++- > osaf/services/saf/ntfsv/ntfs/ntfs_com.h | 23 ++- > osaf/services/saf/ntfsv/ntfs/ntfs_evt.c | 71 ++++++++- > osaf/services/saf/ntfsv/ntfs/ntfs_main.c | 28 +++ > osaf/services/saf/ntfsv/ntfs/ntfs_mbcsv.c | 48 ++++- > osaf/services/saf/ntfsv/ntfs/ntfs_mbcsv.h | 4 +- > osaf/services/saf/ntfsv/ntfs/ntfs_mds.c | 55 ++++++ > osaf/tools/safntf/ntfread/ntfread.c | 2 +- > osaf/tools/safntf/ntfsend/ntfsend.c | 2 +- > osaf/tools/safntf/ntfsubscribe/ntfsubscribe.c | 2 +- > tests/ntfsv/Makefile.am | 3 +- > tests/ntfsv/tet_ntf_clm.c | 501 > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > tests/ntfsv/tet_ntf_common.h | 7 + > tests/ntfsv/tet_ntf_main.c | 4 +- > 29 files changed, 1520 insertions(+), 41 deletions(-) > > > Testing Commands: > ----------------- > Executed newly added test cases. > Also tested non-recovery of A.01.02 clients > by stopping OpenSAF on payload node during headless state. > > Testing, Expected Results: > -------------------------- > All above test cases passed. > > Conditions of Submission: > ------------------------- > Ack from any reviewer. > > Arch Built Started Linux distro > ------------------------------------------- > mips n n > mips64 n n > x86 n n > x86_64 y y > powerpc n n > powerpc64 n n > > > Reviewer Checklist: > ------------------- > [Submitters: make sure that your review doesn't trigger any checkmarks!] > > > Your checkin has not passed review because (see checked entries): > > ___ Your RR template is generally incomplete; it has too many blank entries > that need proper data filled in. > > ___ You have failed to nominate the proper persons for review and push. > > ___ Your patches do not have proper short+long header > > ___ You have grammar/spelling in your header that is unacceptable. > > ___ You have exceeded a sensible line length in your headers/comments/text. > > ___ You have failed to put in a proper Trac Ticket # into your commits. > > ___ You have incorrectly put/left internal data in your comments/files > (i.e. internal bug tracking tool IDs, product names etc) > > ___ You have not given any evidence of testing beyond basic build tests. > Demonstrate some level of runtime or other sanity testing. > > ___ You have ^M present in some of your files. These have to be removed. > > ___ You have needlessly changed whitespace or added whitespace crimes > like trailing spaces, or spaces before tabs. > > ___ You have mixed real technical changes with whitespace and other > cosmetic code cleanup changes. These have to be separate commits. > > ___ You need to refactor your submission into logical chunks; there is > too much content into a single commit. > > ___ You have extraneous garbage in your review (merge commits etc) > > ___ You have giant attachments which should never have been sent; > Instead you should place your content in a public tree to be pulled. > > ___ You have too many commits attached to an e-mail; resend as threaded > commits, or place in a public tree for a pull. > > ___ You have resent this content multiple times without a clear indication > of what has changed between each re-send. > > ___ You have failed to adequately and individually address all of the > comments and change requests that were proposed in the initial review. > > ___ You have a misconfigured ~/.hgrc file (i.e. username, email etc) > > ___ Your computer have a badly configured date and time; confusing the > the threaded patch review. > > ___ Your changes affect IPC mechanism, and you don't present any results > for in-service upgradability test. > > ___ Your changes affect user manual and documentation, your patch series > do not contain the patch that updates the Doxygen manual. > > > ------------------------------------------------------------------------------ > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140 > _______________________________________________ > Opensaf-devel mailing list > Opensaf-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensaf-devel > ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel