Hi AndersBj, Reviewed and tested the patch. Ack.
/Neel. On Monday 02 September 2013 10:01 PM, Anders Bjornerstedt wrote: > Summary: IMM: Abort sync when deadlock detected between sync and PBE (#556) > Review request for Trac Ticket(s): 556 > Peer Reviewer(s): Neel > Pull request to: > Affected branch(es): 4.2, 4.3, default(4.4) > Development branch: > > -------------------------------- > Impacted area Impact y/n > -------------------------------- > Docs n > Build system n > RPM/packaging n > Configuration files n > Startup scripts n > SAF services n > OpenSAF services n > Core libraries n > Samples n > Tests n > Other n > > > Comments (indicate scope for each "y" above): > --------------------------------------------- > > changeset 05b6c7d04835dcfc9c97bce09efa7565677d2990 > Author: Anders Bjornerstedt <[email protected]> > Date: Mon, 02 Sep 2013 18:25:55 +0200 > > IMM: Abort sync when deadlock detected between sync and PBE (#556) > > The sync which is about to start is blocked waiting for ccbs to > complete. > The logic that is periodically invoked to check this is modified so > that it > detects if the PBE has been restarted AND there are CCBs in critical. In > that case deadlock is proclaimed between PBE and sync and the sync is > aborted. > > There is always a waiting period of four seconds between syncs, both > after > regular sync completion and aborted sync. This is to allow the imm > service > to "come up for air", that is process other urgent jobs, such as > allowing a > dump iteration to set epoch and start. > > Testing this fix requires a testpatch that injects delay in the PBE for > the > commit processing for a ccb, such as "ccb 3". Plus also a delay in a > restarted PBE to aquire the dump iterator. This allows the tester tto > trigger the ccb (using immcfg) and then while the ccb is blocked, to > kill > the immnd coord, which will also cause the PBE to terminate. > > The restarted PBE will not be too quick in obtaining the dump iterator, > to > allow the sync to get started => deadlock. > > Without the fix, the deadlock will last for 20 seconds and then both > PBE and > sync will abort and restart. With the patch, the sync should get aborted > soon after start. Then wait for 4 seconds before restarting, allowing > the > PBE to proceed obtaining the dump and epoch. > > Test patch will be provided on request. > > > Complete diffstat: > ------------------ > osaf/services/saf/immsv/immnd/ImmModel.cc | 9 ++++++--- > osaf/services/saf/immsv/immnd/immnd_init.h | 2 +- > osaf/services/saf/immsv/immnd/immnd_proc.c | 36 > +++++++++++++++++++++++++++++++++--- > 3 files changed, 40 insertions(+), 7 deletions(-) > > > Testing Commands: > ----------------- > <<LIST THE COMMAND LINE TOOLS/STEPS TO TEST YOUR CHANGES>> > > > Testing, Expected Results: > -------------------------- > <<PASTE COMMAND OUTPUTS / TEST RESULTS>> > > > 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. > ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
