Summary: osaf: allow split brain prevention parameter changes at runtime V2 [#3006] Review request for Ticket(s): 3006 Peer Reviewer(s): Minh Pull request to: *** LIST THE PERSON WITH PUSH ACCESS HERE *** Affected branch(es): develop Development branch: ticket-3006 Base revision: ae78957e977d783cf053e86845ad7c34e51230a3 Personal repository: git://git.code.sf.net/u/userid-2226215/review
-------------------------------- Impacted area Impact y/n -------------------------------- Docs n Build system n RPM/packaging n Configuration files y Startup scripts n SAF services y OpenSAF services y Core libraries y Samples n Tests n Other n Comments (indicate scope for each "y" above): --------------------------------------------- Changes from V1: add daemon_sighup_install after review fix memory leak in rded -- revision 32573b69eae74db365b4842ff41c00789d6f295d Author: Gary Lee <gary....@dektech.com.au> Date: Fri, 8 Feb 2019 14:20:25 +1100 rded: fix leak when processing takeover_request [#3006] a memory leak may occur if a takeover_request is processed after split brain prevention is disabled at runtime revision c6be673f51c8317084b0f2ce88c59953bf8578d4 Author: Gary Lee <gary....@dektech.com.au> Date: Fri, 8 Feb 2019 14:20:25 +1100 base: add daemon_sighup_install [#3006] refactor amfd/fmd/rded to use daemon_sighup_install revision 0e67a650a08ed0b36e987d227fb33f334f478f07 Author: Gary Lee <gary....@dektech.com.au> Date: Fri, 8 Feb 2019 14:20:25 +1100 rded: reload split brain prevention parameters on SIGHUP [#3006] If enabled at runtime and this node is active, promote this node in consensus service. If disabled at runtime, watch threads will terminate gracefully when the plugin exits after losing connectivty to the consensus service. revision a38ebb7ac5b2ec925042a05b197332152e2466d1 Author: Gary Lee <gary....@dektech.com.au> Date: Fri, 8 Feb 2019 14:20:25 +1100 amfd: reload split brain prevention parameters on SIGHUP [#3006] revision 22799b8c6cce11726566c5d1dd05079adbbb9bbb Author: Gary Lee <gary....@dektech.com.au> Date: Fri, 8 Feb 2019 14:20:25 +1100 fmd: reload split brain prevention parameters on SIGHUP [#3006] revision 8a0da03e655d3f8830e052fceec3b945edc297a3 Author: Gary Lee <gary....@dektech.com.au> Date: Fri, 8 Feb 2019 14:20:25 +1100 osaf: add ability to reload config from fmd.conf [#3006] Add ReloadConfiguration() function - when called it will read fmd.conf and look for 'export FMS_XXXXX=', and overwrite current environment variable settings in the caller. This allows split brain prevention parameters to be changed at runtime without a node restart. Complete diffstat: ------------------ src/amf/amfd/cb.h | 1 + src/amf/amfd/main.cc | 15 +++++++++ src/amf/amfd/osaf-amfd.in | 1 + src/base/daemon.c | 36 +++++++++++++++++++++- src/base/daemon.h | 3 ++ src/fm/fmd/fm_main.cc | 30 +++++------------- src/osaf/consensus/consensus.cc | 67 +++++++++++++++++++++++++++++++---------- src/osaf/consensus/consensus.h | 20 ++++++++---- src/osaf/consensus/key_value.cc | 41 +++++++++++++------------ src/rde/rded/osaf-rded.in | 1 + src/rde/rded/rde_main.cc | 49 +++++++++++++++++++++++++----- src/rde/rded/rde_rda.h | 3 ++ src/rde/rded/role.cc | 27 +++++++++++++---- src/rde/rded/role.h | 1 + 14 files changed, 216 insertions(+), 79 deletions(-) Testing Commands: ----------------- 1) Start cluster with FMS_SPLIT_BRAIN_PREVENTION=0 On both active / standby SCs: modify fmd.conf and set FMS_SPLIT_BRAIN_PREVENTION=1 pkill -SIGHUP osafamfd pkill -SIGHUP osaffmd pkill -SIGHUP osafrded Ensure split brain prevention works as expected 2) Leave cluster from Step 1 running On both active / standby SCs: modify fmd.conf and set FMS_SPLIT_BRAIN_PREVENTION=0 pkill -SIGHUP osafamfd pkill -SIGHUP osaffmd pkill -SIGHUP osafrded Ensure split brain prevention is no longer in effect Testing, Expected Results: -------------------------- As above Conditions of Submission: ------------------------- *** HOW MANY DAYS BEFORE PUSHING, CONSENSUS ETC *** 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 ~/.gitconfig file (i.e. user.name, user.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. _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel