Re: [devel] [PATCH 1 of 1] cpsv: To update checkpoint user number for each node [#1669] V3

2016-07-25 Thread Vo Minh Hoang
Dear Mahesh,

Thank you very much for your checking.

Unfortunately, I unsuccessfully reproduce this problem in our environment.
Would you please send us the trace log of d and nd of both SC-1 and SC-2
when error occur for investigating.

For reference, here is my reproduce steps:
1. prepare SC-1 with patch, SC-2 without patch
2. create checkpoint in SC-1
3. open checkpoint in SC-2
4. immlist to get checkpoint information
5. unlink and close checkpoint in SC-1
6. immlist again to confirm its deletion
7. create checkpoint again in SC-1
8. list all replica in sharemem, there is a different here, in you error
log, why sharemem is different between SC-1 and SC-2? In my opinion sharemem
should be one.
9. immlist to check information

Please tell us if I miss something.
I am sorry for any inconvenient.

Thank you and best regards.
Hoang

-Original Message-
From: A V Mahesh [mailto:mahesh.va...@oracle.com] 
Sent: Friday, July 15, 2016 10:26 AM
To: Nhat Pham ; anders.wid...@ericsson.com; Nhat
Pham ; Hoang Vo 
Cc: opensaf-devel@lists.sourceforge.net
Subject: Re: [PATCH 1 of 1] cpsv: To update checkpoint user number for each
node [#1669] V3

Hi  Hoang /Nhat Pham,


The basic testing with in-service upgrade(one old  controller with 
out patch and one new  controller with patch ) is corrupting the
Writers/Readers/Openers  DB,

please verify in-service upgrade test with collocated & no-collocated ckpts
and address new issue and publish V4 patch.

SC-1:/avm/opensaf_app/cpsv_applications/virtualaddr # immlist
safCkpt=checkpoint_test77
Name   Type Value(s)

safCkptSA_STRING_T 
safCkpt=checkpoint_test77
saCkptCheckpointUsedSize   SA_UINT64_T 110 (0x6e)
saCkptCheckpointSize   SA_UINT64_T 2097152 
(0x20)
saCkptCheckpointRetDurationSA_TIME_T 
9223372036854775807 (0x7fff, Sat Apr 12 05:17:16 2262)
saCkptCheckpointNumWriters SA_UINT32_T 
4294967291 (0xfffb)
saCkptCheckpointNumSectionsSA_UINT32_T  1 (0x1)
saCkptCheckpointNumReplicasSA_UINT32_T  4 (0x4)
saCkptCheckpointNumReaders SA_UINT32_T 
4294967291 (0xfffb)
saCkptCheckpointNumOpeners SA_UINT32_T 
4294967291 (0xfffb)
saCkptCheckpointNumCorruptSections SA_UINT32_T  0 (0x0)
saCkptCheckpointMaxSectionsSA_UINT32_T  1 (0x1)
saCkptCheckpointMaxSectionSize SA_UINT64_T 2097152 
(0x20)
saCkptCheckpointMaxSectionIdSize   SA_UINT64_T 256 (0x100)
saCkptCheckpointCreationTimestamp  SA_TIME_T 
14685525530 (0x146158c4278eda00, Fri Jul 15 08:45:53 2016)
saCkptCheckpointCreationFlags  SA_UINT32_T  2 (0x2)
SaImmAttrImplementerName   SA_STRING_T 
safCheckPointService
SaImmAttrClassName SA_STRING_T 
SaCkptCheckpoint
SaImmAttrAdminOwnerNameSA_STRING_T 

-AVM


On 7/13/2016 12:44 PM, A V Mahesh wrote:
> Hi  Hoang /Nhat Pham,
>
> I just started testing , fowling test case is failing , I may report 
> more  as soon as I get some
>
> Test case 1 :
>
> Step 1 : saCkptCheckpointOpen  on SC-1
>
> SC-1:# ./node_A
> 0 saCkptCheckpointOpen  returned checkpointHandle 626bf0
> 1 saCkptCheckpointOpen  returned checkpointHandle 626e70
> 2 saCkptCheckpointOpen  returned checkpointHandle 626ff0
> 3 saCkptCheckpointOpen  returned checkpointHandle 627170
> 4 saCkptCheckpointOpen  returned checkpointHandle 6272f0 
> saCkptCheckpointWrite Waiting to Read from Checkpoint 
> saCkptCheckpointWrite Press  key to continue...
>
> 1 saCkptCheckpointWrite  checkpointHandle 626bf0
> 2 saCkptCheckpointWrite  checkpointHandle 626bf0
> 3 saCkptCheckpointWrite  checkpointHandle 626bf0
> 4 saCkptCheckpointWrite  checkpointHandle 626bf0
> 222 saCkptCheckpointWrite  checkpointHandle 626bf0 
> saCkptCheckpointRead Waiting to Read from Checkpoint 
> saCkptCheckpointRead Press  key to continue...
>
> Step 2 : saCkptCheckpointOpen  on SC-2
>
> SC-2:/avm/opensaf_app/cpsv_applications/virtualaddr # ./node_B
> 0 saCkptCheckpointOpen  returned checkpointHandle 626bf0
> 1 saCkptCheckpointOpen  returned checkpointHandle 626e70
> 2 saCkptCheckpointOpen  returned checkpointHandle 626ff0
> 3 saCkptCheckpointOpen  returned checkpointHandle 627170
> 4 saCkptCheckpointOpen  returned checkpointHandle 6272f0 
> saCkptCheckpointWrite Waiting to Read from Checkpoint 
> saCkptCheckpointWrite Press  key to continue...
>
> 1 saCkptCheckpointWrite  checkpointHandle 626bf0
> 2 saCkptCheckpointWrite  checkpointHandle 626bf0
> 3 saCkptCheckpointWrite  checkpointHandle 626bf0

[devel] [PATCH 0 of 1] Review Request for imm: Add readme for headless feature [#1856]

2016-07-25 Thread Hung Nguyen
Summary: imm: Add readme for headless feature [#1856]
Review request for Trac Ticket(s): 1856
Peer Reviewer(s): Zoran, Neel
Pull request to:
Affected branch(es): 5.0, 5.1
Development branch: 5.1


Impacted area   Impact y/n

 Docsn
 Build systemn
 RPM/packaging   n
 Configuration files n
 Startup scripts n
 SAF servicesy
 OpenSAF servicesn
 Core libraries  n
 Samples n
 Tests   n
 Other   n


Comments (indicate scope for each "y" above):
-


changeset 799e1b8d0756226c58723a9f1c41c148c7d8fa05
Author: Hung Nguyen 
Date:   Mon, 25 Jul 2016 17:56:05 +0700

imm: Add readme for headless feature [#1856]

Add readme for headless feature.


Added Files:

 osaf/services/saf/immsv/README.HEADLESS


Complete diffstat:
--
 osaf/services/saf/immsv/README  |   2 ++
 osaf/services/saf/immsv/README.HEADLESS |  72 

 2 files changed, 74 insertions(+), 0 deletions(-)


Testing Commands:
-



Testing, Expected Results:
--



Conditions of Submission:
-
Ack from reviewers.


Arch  Built StartedLinux distro
---
mipsn  n
mips64  n  n
x86 n  n
x86_64  n  n
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.


--
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.http://sdm.link/zohodev2dev
___
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel


[devel] [PATCH 1 of 1] imm: Add readme for headless feature [#1856]

2016-07-25 Thread Hung Nguyen
 osaf/services/saf/immsv/README  |   2 +
 osaf/services/saf/immsv/README.HEADLESS |  72 +
 2 files changed, 74 insertions(+), 0 deletions(-)


Add readme for headless feature.

diff --git a/osaf/services/saf/immsv/README b/osaf/services/saf/immsv/README
--- a/osaf/services/saf/immsv/README
+++ b/osaf/services/saf/immsv/README
@@ -2779,6 +2779,8 @@ provided during absent SC depends on the
 of the IMM service, the service provided during SC absence is in essence 
 only the reading of config data.
 
+See: osaf/services/saf/immsv/README.HEADLESS for details.
+
 
 Add attribute definition flag SA_IMM_ATTR_STRONG_DEFAULT (5.0)
 ===
diff --git a/osaf/services/saf/immsv/README.HEADLESS 
b/osaf/services/saf/immsv/README.HEADLESS
new file mode 100644
--- /dev/null
+++ b/osaf/services/saf/immsv/README.HEADLESS
@@ -0,0 +1,72 @@
+HEADLESS: Allow IMMNDs to survive SC absence (5.0)
+=
+Prior to this enhancement, absence of both SCs will cause IMMNDs to restart,
+also the cluster will be reboot by AMF. With this feature, IMMNDs on payloads
+continue to provide limited service until an SC is back.
+
+
+CONFIGURATION
+=
+To enable this feature, IMMSV_SC_ABSENCE_ALLOWED environment variable must be
+set for IMMD (immd.conf)
+
+export IMMSV_SC_ABSENCE_ALLOWED=900
+
+The value indicates the number of seconds cluster will tolerate SC absence,
+value of zero indicates the feature is disabled.
+See immd.conf for more details.
+
+
+IMMND
+=
+With headless feature enabled, IMMNDs on payloads now can be coordinator. That
+can happen even when the cluster doesn't go headless.
+
+For example, the cluster only has one SC and IMMND on SC restarts, one of the
+IMMNDs on payloads will be elected as new coordinator. Without headless 
enabled,
+the cluster will not tolerate that situation and a cluster reboot will occur.
+
+Upon receiving the IMMD down event, payload based IMMNDs unregister with MDS
+and then:
+- remove all local clients,
+- discard all implementers,
+- finalize all admin owners,
+- abort all non-critical CCBs.
+
+That means the IMMNDs only keep class definitions and object information in
+their memories during headless.
+
+After cleaning up those things, MDS will be registered again to allow clients 
to
+read the objects but only config data can be read because there's currently no
+OI attached for runtime data.
+
+Other operations with IMM service will get SA_AIS_ERR_TRY_AGAIN during 
headless.
+If you retry the APIs on SA_AIS_ERR_TRY_AGAIN, you should retry at least the
+amount of time that you set for IMMSV_SC_ABSENCE_ALLOWED.
+
+If you get SA_AIS_ERR_BAD_HANDLE, you must re-initialize the handles.
+
+
+IMMD
+
+After coming back from headless, the active IMMD will wait for the veteran
+IMMNDs to introduce for 3 seconds. If there's no introduction from veteran 
IMMND
+within 3 seconds, IMMD will start to load from repository. This is to avoid the
+race condition where IMMD receives and processes introduce message from the
+local IMMND or a newly joined IMMND before the veteran IMMNDs.
+
+The veteran IMMNDs also include highest fevs, latest id of implementer/admo/ccb
+in the introduce message to help IMMD restore these counters back to the state
+right before SC absence.
+
+IMMD then elects one of the veteran IMMNDs as new coordinator and the data is
+sync'ed to the SC based IMMNDs. After that, IMM service becomes fully 
functional
+again.
+
+
+HEADLESS and 2PBE
+=
+Support for absent IMMD is incompatible with 2PBE. If both are configured then
+2PBE will win and the absence of IMMD feature will be ignored. An error message
+is printed in this case to the syslog at startup.
+

--
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.http://sdm.link/zohodev2dev
___
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel


Re: [devel] [PATCH 1 of 5] amfd: replace SaNameT with string in include dir [#1642]

2016-07-25 Thread Gary Lee
Hi

The order shouldn't matter, but please apply all 7 sets before compiling.

Gary

Quoting praveen malviya :

> Hi Gary,
>
> Thanks for the patches. AMFD fails for compilation with these 5 patches:
> make[7]: Entering directory `/home/long_dn/osaf/services/saf/amf/amfd'
>   CXX  osafamfd-app.o
> In file included from app.cc:21:0:
> ../../../../../osaf/services/saf/amf/amfd/include/util.h:45:29:  
> fatal error: amf_db_template.h: No such file or directory
>  #include "amf_db_template.h"
>  ^
> compilation terminated.
> What is the order to be followed? I see Long has published some  
> individual patches.
>
>
> Thanks,
> praveen
>
> On 25-Jul-16 11:58 AM, Gary Lee wrote:
>> Hi Praveen
>>
>> I've attached the amfd patches to the ticket.
>>
>> Long also sent 6 other patches for amfnd, amf common lib, etc..
>>
>> Thanks
>>
>> Gary
>>
>>
>> On 25/07/2016 4:18 PM, praveen malviya wrote:
>>> Hi Gary,
>>> Not received patch 5 of 5 and 0 of 5. Please upload patches in the
>>> ticket.
>>>
>>> Also please confirm how may sets of patches are there?
>>>
>>> Thanks,
>>> Praveen
>>>
>>>
>>> On 05-Jul-16 1:25 PM, Gary Lee wrote:
 osaf/services/saf/amf/amfd/include/Makefile.am |   1 -
 osaf/services/saf/amf/amfd/include/app.h   |   8 +-
 osaf/services/saf/amf/amfd/include/apptype.h   |  10 +-
 osaf/services/saf/amf/amfd/include/cb.h|   4 +-
 osaf/services/saf/amf/amfd/include/ckpt.h  |   4 +-
 osaf/services/saf/amf/amfd/include/cluster.h   |   8 +-
 osaf/services/saf/amf/amfd/include/comp.h  |  58
 +++--
 osaf/services/saf/amf/amfd/include/csi.h   |  26 
 osaf/services/saf/amf/amfd/include/evt.h   |  22 ---
 osaf/services/saf/amf/amfd/include/imm.h   |  21 ---
 osaf/services/saf/amf/amfd/include/node.h  |  21 +++
 osaf/services/saf/amf/amfd/include/ntf.h   |  34 ++--
 osaf/services/saf/amf/amfd/include/pg.h|   2 +-
 osaf/services/saf/amf/amfd/include/proc.h  |  22 
 osaf/services/saf/amf/amfd/include/sg.h|   9 +-
 osaf/services/saf/amf/amfd/include/sgtype.h|  10 +-
 osaf/services/saf/amf/amfd/include/si.h|  12 ++--
 osaf/services/saf/amf/amfd/include/si_dep.h|  16 +++---
 osaf/services/saf/amf/amfd/include/su.h|  18 +++---
 osaf/services/saf/amf/amfd/include/susi.h  |  14 ++--
 osaf/services/saf/amf/amfd/include/sutcomptype.h   |   4 +-
 osaf/services/saf/amf/amfd/include/sutype.h|   6 +-
 osaf/services/saf/amf/amfd/include/svctype.h   |   4 +-
 osaf/services/saf/amf/amfd/include/svctypecstype.h |   6 +-
 osaf/services/saf/amf/amfd/include/timer.h |   5 +-
 osaf/services/saf/amf/amfd/include/util.h  |  17 +++--
 26 files changed, 185 insertions(+), 177 deletions(-)


 diff --git a/osaf/services/saf/amf/amfd/include/Makefile.am
 b/osaf/services/saf/amf/amfd/include/Makefile.am
 --- a/osaf/services/saf/amf/amfd/include/Makefile.am
 +++ b/osaf/services/saf/amf/amfd/include/Makefile.am
 @@ -31,7 +31,6 @@ noinst_HEADERS = \
comp.h \
clm.h \
csi.h \
 -   db_template.h \
def.h \
evt.h \
amfd.h \
 diff --git a/osaf/services/saf/amf/amfd/include/app.h
 b/osaf/services/saf/amf/amfd/include/app.h
 --- a/osaf/services/saf/amf/amfd/include/app.h
 +++ b/osaf/services/saf/amf/amfd/include/app.h
 @@ -30,13 +30,13 @@
 #include 
 #include 
 #include 
 -#include "db_template.h"
 +#include 

 class AVD_APP {

 public:
 -SaNameT name;
 -SaNameT saAmfAppType;
 +std::string name;
 +std::string saAmfAppType;
 SaAmfAdminStateT saAmfApplicationAdminState;
 SaUint32T saAmfApplicationCurrNumSGs;
 AVD_SG *list_of_sg;
 @@ -45,7 +45,7 @@ public:
 AVD_APP_TYPE *app_type;

 AVD_APP();
 -explicit AVD_APP(const SaNameT *dn);
 +explicit AVD_APP(const std::string& dn);
 ~AVD_APP();

 void add_si(AVD_SI *si);
 diff --git a/osaf/services/saf/amf/amfd/include/apptype.h
 b/osaf/services/saf/amf/amfd/include/apptype.h
 --- a/osaf/services/saf/amf/amfd/include/apptype.h
 +++ b/osaf/services/saf/amf/amfd/include/apptype.h
 @@ -29,16 +29,16 @@

 #include 
 #include 
 -#include "db_template.h"
 +#include 

 class AVD_APP;

 class AVD_APP_TYPE {
  public:
 -  explicit AVD_APP_TYPE(const SaNameT* dn);
 +  explicit AVD_APP_TYPE(const std::string& dn);
   ~AVD_APP_TYPE();
 -  SaNameT name {};
 -  std::vector sgAmfApptSGTypes {};
 +  std::string name {};
 +  std::vector sgAmfApptSGTypes {};
   AVD_APP *list_of_app {};
  

Re: [devel] [PATCH 1 of 5] amfd: replace SaNameT with string in include dir [#1642]

2016-07-25 Thread praveen malviya
Hi Gary,
Not received patch 5 of 5 and 0 of 5. Please upload patches in the ticket.

Also please confirm how may sets of patches are there?

Thanks,
Praveen


On 05-Jul-16 1:25 PM, Gary Lee wrote:
>  osaf/services/saf/amf/amfd/include/Makefile.am |   1 -
>  osaf/services/saf/amf/amfd/include/app.h   |   8 +-
>  osaf/services/saf/amf/amfd/include/apptype.h   |  10 +-
>  osaf/services/saf/amf/amfd/include/cb.h|   4 +-
>  osaf/services/saf/amf/amfd/include/ckpt.h  |   4 +-
>  osaf/services/saf/amf/amfd/include/cluster.h   |   8 +-
>  osaf/services/saf/amf/amfd/include/comp.h  |  58 
> +++--
>  osaf/services/saf/amf/amfd/include/csi.h   |  26 
>  osaf/services/saf/amf/amfd/include/evt.h   |  22 ---
>  osaf/services/saf/amf/amfd/include/imm.h   |  21 ---
>  osaf/services/saf/amf/amfd/include/node.h  |  21 +++
>  osaf/services/saf/amf/amfd/include/ntf.h   |  34 ++--
>  osaf/services/saf/amf/amfd/include/pg.h|   2 +-
>  osaf/services/saf/amf/amfd/include/proc.h  |  22 
>  osaf/services/saf/amf/amfd/include/sg.h|   9 +-
>  osaf/services/saf/amf/amfd/include/sgtype.h|  10 +-
>  osaf/services/saf/amf/amfd/include/si.h|  12 ++--
>  osaf/services/saf/amf/amfd/include/si_dep.h|  16 +++---
>  osaf/services/saf/amf/amfd/include/su.h|  18 +++---
>  osaf/services/saf/amf/amfd/include/susi.h  |  14 ++--
>  osaf/services/saf/amf/amfd/include/sutcomptype.h   |   4 +-
>  osaf/services/saf/amf/amfd/include/sutype.h|   6 +-
>  osaf/services/saf/amf/amfd/include/svctype.h   |   4 +-
>  osaf/services/saf/amf/amfd/include/svctypecstype.h |   6 +-
>  osaf/services/saf/amf/amfd/include/timer.h |   5 +-
>  osaf/services/saf/amf/amfd/include/util.h  |  17 +++--
>  26 files changed, 185 insertions(+), 177 deletions(-)
>
>
> diff --git a/osaf/services/saf/amf/amfd/include/Makefile.am 
> b/osaf/services/saf/amf/amfd/include/Makefile.am
> --- a/osaf/services/saf/amf/amfd/include/Makefile.am
> +++ b/osaf/services/saf/amf/amfd/include/Makefile.am
> @@ -31,7 +31,6 @@ noinst_HEADERS = \
> comp.h \
> clm.h \
> csi.h \
> -   db_template.h \
> def.h \
> evt.h \
> amfd.h \
> diff --git a/osaf/services/saf/amf/amfd/include/app.h 
> b/osaf/services/saf/amf/amfd/include/app.h
> --- a/osaf/services/saf/amf/amfd/include/app.h
> +++ b/osaf/services/saf/amf/amfd/include/app.h
> @@ -30,13 +30,13 @@
>  #include 
>  #include 
>  #include 
> -#include "db_template.h"
> +#include 
>
>  class AVD_APP {
>
>  public:
> - SaNameT name;
> - SaNameT saAmfAppType;
> + std::string name;
> + std::string saAmfAppType;
>   SaAmfAdminStateT saAmfApplicationAdminState;
>   SaUint32T saAmfApplicationCurrNumSGs;
>   AVD_SG *list_of_sg;
> @@ -45,7 +45,7 @@ public:
>   AVD_APP_TYPE *app_type;
>   
>   AVD_APP();
> - explicit AVD_APP(const SaNameT *dn);
> + explicit AVD_APP(const std::string& dn);
>   ~AVD_APP();
>   
>   void add_si(AVD_SI *si);
> diff --git a/osaf/services/saf/amf/amfd/include/apptype.h 
> b/osaf/services/saf/amf/amfd/include/apptype.h
> --- a/osaf/services/saf/amf/amfd/include/apptype.h
> +++ b/osaf/services/saf/amf/amfd/include/apptype.h
> @@ -29,16 +29,16 @@
>
>  #include 
>  #include 
> -#include "db_template.h"
> +#include 
>
>  class AVD_APP;
>
>  class AVD_APP_TYPE {
>   public:
> -  explicit AVD_APP_TYPE(const SaNameT* dn);
> +  explicit AVD_APP_TYPE(const std::string& dn);
>~AVD_APP_TYPE();
> -  SaNameT name {};
> -  std::vector sgAmfApptSGTypes {};
> +  std::string name {};
> +  std::vector sgAmfApptSGTypes {};
>AVD_APP *list_of_app {};
>   private:
>AVD_APP_TYPE();
> @@ -47,7 +47,7 @@ class AVD_APP_TYPE {
>void operator=(const AVD_APP_TYPE&);
>  };
>
> -extern AVD_APP_TYPE *avd_apptype_get(const SaNameT *dn);
> +extern AVD_APP_TYPE *avd_apptype_get(const std::string& dn);
>  extern void avd_apptype_add_app(AVD_APP *app);
>  extern void avd_apptype_remove_app(AVD_APP *app);
>  extern SaAisErrorT avd_apptype_config_get(void);
> diff --git a/osaf/services/saf/amf/amfd/include/cb.h 
> b/osaf/services/saf/amf/amfd/include/cb.h
> --- a/osaf/services/saf/amf/amfd/include/cb.h
> +++ b/osaf/services/saf/amf/amfd/include/cb.h
> @@ -93,7 +93,7 @@ typedef struct avd_ext_comp_info {
>   * during fail over.
>   */
>  typedef struct avd_evt_queue {
> - struct avd_evt_tag *evt;
> + struct AVD_EVT *evt;
>   struct avd_evt_queue *next;
>  } AVD_EVT_QUEUE;
>
> @@ -240,6 +240,6 @@ typedef struct cl_cb_tag {
>
>  extern AVD_CL_CB *avd_cb;
>
> -struct avd_evt_tag;
> +struct AVD_EVT;
>
>  #endif
> diff --git a/osaf/services/saf/amf/amfd/include/ckpt.h 
> b/osaf/services/saf/amf/amfd/include/ckpt.h
> --- a/osaf/services/saf/amf/amfd/include/ckpt.h
> +++ b/osaf/services/saf/amf/amfd/include/ckpt.h
> @@ -45,7 +45,7 @@