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

Reply via email to