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

Reply via email to