Summary: log: Make log record overload protection limits configurable in runtime Review request for Trac Ticket(s): #921 Peer Reviewer(s): [email protected] Pull request to: <<LIST THE PERSON WITH PUSH ACCESS HERE>> Affected branch(es): 4.5 (devel) 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): --------------------------------------------- Make it possible to change limits used by overload protection in runtime. NOTE: Patch for #941 must be applied before this patch if #941 is not pushed. changeset e009c9656e56b1c1d74cc90c384b8fda837ff5ad Author: Lennart Lund <[email protected]> Date: Wed, 25 Jun 2014 16:30:31 +0200 log: Make limit settings in config object runtime configurable [#921] Make the high and low limit settings i the configuration object possible to change in runtime. - Validate and accept changes - Apply changes (on active only) changeset b1bedb0428bab758c5aeef306084fd2e5447f611 Author: Lennart Lund <[email protected]> Date: Thu, 26 Jun 2014 13:24:25 +0200 log: Add handling of configuration change on standby [#921] - Update and apply changed limit attributes on standby Check-pointing not used. Instead the configuration object is read and changeas are applied when standby change state to active. - Approve changes only if standby also support changes. changeset 4d1bf92fac738ad9e1a7767db2560871c9b93b39 Author: Lennart Lund <[email protected]> Date: Thu, 26 Jun 2014 13:25:10 +0200 log: Create testcases for changing mailbox limits in IMM config object [#921] Test: Validation of attribute values Complete diffstat: ------------------ osaf/services/saf/logsv/README | 29 ++++- osaf/services/saf/logsv/lgs/lgs.h | 4 + osaf/services/saf/logsv/lgs/lgs_amf.c | 8 +- osaf/services/saf/logsv/lgs/lgs_evt.c | 6 + osaf/services/saf/logsv/lgs/lgs_imm.c | 416 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------- osaf/services/saf/logsv/lgs/lgs_main.c | 41 ++++++- osaf/services/saf/logsv/lgs/lgs_mbcsv.c | 16 +++- osaf/services/saf/logsv/lgs/lgs_mbcsv.h | 12 ++- osaf/services/saf/logsv/lgs/lgs_mds.c | 21 +++- 9 files changed, 427 insertions(+), 126 deletions(-) Testing Commands: ----------------- a. With #921 version running on both SC nodes. # logtest b. With #921 version running on active node and an older version on the other node. The following description assumes that UML is used. It shall not be possible to change any overload limits if not supported by both SC nodes. In UML different versions can be started as follows: Two OpenSAF clones with are needed one with patch #921 applied and one without lets call them C1; with #921 and C2; without #921. Uml is built on both. Start a SC node without #921: > ./opensaf nodestart 2 (becomes SC-2, ACTIVE) Start a SC with #921: > ./opensaf nodestart 1 (becomes SC-1, STANDBY) Switch HA state so that SC-1 becomes active: # immadm -o 7 safSi=SC-2N,safApp=OpenSAF On SC-1 run logtest suite 5: # logtest 5 Testing, Expected Results: -------------------------- a. All tests shall pass. Suite 5 is new and test this enhancement specifically. b. Some of the tests shall fail. More precisely all tests not concerning the overload limits shall pass. Also all the negative tests will pass. This is because the attribute is validated before it's checked if the other node supports changes. All valid changes shall fail. Suite 5: LOG OI tests, Service configuration object 1 PASSED CCB Object Modify, root directory. Path does not exist. Not allowed 2 PASSED CCB Object Modify, root directory. Path exist. OK 3 PASSED CCB Object Modify, logMaxLogrecsize. Not allowed error - saImmOmCcbApply FAILED: SA_AIS_ERR_FAILED_OPERATION (21) OI reports: Not supported by standby node 4 FAILED (expected EXIT_SUCCESS, got EXIT_FAILURE (1)) CCB Object Modify, logStreamSystemHighLimit > logStreamSystemLowLimit. OK 5 PASSED CCB Object Modify, logStreamSystemHighLimit = logStreamSystemLowLimit, != 0. Error 6 PASSED CCB Object Modify, logStreamSystemHighLimit < logStreamSystemLowLimit. Error error - saImmOmCcbApply FAILED: SA_AIS_ERR_FAILED_OPERATION (21) OI reports: Not supported by standby node 7 FAILED (expected EXIT_SUCCESS, got EXIT_FAILURE (1)) CCB Object Modify, logStreamSystemHighLimit = logStreamSystemLowLimit = 0. O K error - saImmOmCcbApply FAILED: SA_AIS_ERR_FAILED_OPERATION (21) OI reports: Not supported by standby node 8 FAILED (expected EXIT_SUCCESS, got EXIT_FAILURE (1)) CCB Object Modify, logStreamAppHighLimit > logStreamAppLowLimit. OK 9 PASSED CCB Object Modify, logStreamAppHighLimit = logStreamAppLowLimit, != 0. Error 10 PASSED CCB Object Modify, logStreamAppHighLimit < logStreamAppLowLimit. Error error - saImmOmCcbApply FAILED: SA_AIS_ERR_FAILED_OPERATION (21) OI reports: Not supported by standby node 11 FAILED (expected EXIT_SUCCESS, got EXIT_FAILURE (1)) CCB Object Modify, logStreamAppHighLimit = logStreamAppLowLimit = 0. OK 12 PASSED CCB Object Modify, logMaxApplicationStreams. Not allowed 13 PASSED CCB Object Modify, logFileIoTimeout. Not allowed 14 PASSED CCB Object Modify, logFileSysConfig. Not allowed ===================================================================================== Test Result: Total: 14 Passed: 10 Failed: 4 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 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. ------------------------------------------------------------------------------ Open source business process management suite built on Java and Eclipse Turn processes into business applications with Bonita BPM Community Edition Quickly connect people, data, and systems into organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards http://p.sf.net/sfu/Bonitasoft _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
