See my comments inline, marked [AndersW]. regards, Anders Widell
On 04/04/2016 02:11 PM, praveen malviya wrote: > > > On 02-Apr-16 4:51 PM, Anders Widell wrote: >> Hi! >> >> This change makes NTF depend on CLM. CLM already depends on NTF, so it >> means we now have a circular dependency. > As of now circular deps has been resolved by updating NTF version to > A.01.02. All middle-ware services (AMF, PLM CLM and SMF) intialize > with NTF with A.01.01, so they will not get ERR_UNAVAIlABLE. > However as mentioned in README also, if there is change in init > sequence of OpenSAF in 5.1, then some changes may come. [AndersW] What I have observed is that NTF is calling saClmInitialize(), while CLM at the same time is calling saNtfNotificationSend(). Both of these seem to be synchronous calls. > > 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. > In which situation BAD_HANDLE will be returned. The two APIS that is > being used works even on non-member nodes with only restriction that > only local node status will be delivered through track callback. [AndersW] BAD_HANDLE will be returned when the CLM service is restarted. I took a closer look at the code, and it seems that you are not initializing CLM on a spare node before you get an ACTIVE/STANDBY assignment, so in practice this will not happen at the moment. However, since CLM can return BAD_HANDLE it is good practice to handle this error code. So it is not super-urgent to handle this error before the 5.0 release, but I think it should be fixed in the future. > > > Thanks, > Praveen >> >> 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 >>> >> ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel