Re: [devel] [PATCH 1 of 1] cpsv: To update checkpoint user number for each node [#1669] V3
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]
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 NguyenDate: 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]
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]
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]
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 @@