Summary: immnd: fix cannot set implementer returning SA_AIS_ERR_EXIST [#3390]
Review request for Ticket(s): 3390
Peer Reviewer(s): Thang, Dat
Pull request to: *** LIST THE PERSON WITH PUSH ACCESS HERE ***
Affected branch(es): develop
Development branch: ticket-3390
Base revision: 074cdef2349a019edadfba965961001975481bfb
Personal repository: git://git.code.sf.net/u/thienhuynh/review

--------------------------------
Impacted area       Impact y/n
--------------------------------
 Docs                    n
 Build system            n
 RPM/packaging           n
 Configuration files     n
 Startup scripts         n
 SAF services            n
 OpenSAF services        y
 Core libraries          n
 Samples                 n
 Tests                   n
 Other                   n


Comments (indicate scope for each "y" above):
---------------------------------------------
*** EXPLAIN/COMMENT THE PATCH SERIES HERE ***

revision 978e56bd076ca6b302f5c9299c41beb4d6bbc1d9
Author: Thien Minh Huynh <[email protected]>
Date:   Mon, 23 Feb 2026 03:42:34 +0100

immnd: fix cannot set implementer returning SA_AIS_ERR_EXIST [#3390]

Setting an implementer during cluster merge or split‑brain recovery
could fail with SA_AIS_ERR_EXIST even though the coord accepted the new
implementer and the operation should be retried.
When this happens, visible symptoms include the imm agent timing out or
receiving a response that later leads to SA_AIS_ERR_EXIST on retries.

After a network merge, IMMND re-introduces and enters a sync phase with
the coordinator (mIntroduced == 2). While syncing, IMMND may drop the
set-implementer response but the coordinator can still accept and set the
implementer. This creates a mismatch: the imm agent either times out or
gets a stale/absent response, and when it retries the operation the IMMND
now reports SA_AIS_ERR_EXIST because the implementer is already set on
the coordinator.

Add an early check in case IMMND need to be synced with coord.
This prevents further processing while IMMND is syncing and makes
the retryable condition explicit so the agent can try again later.



Complete diffstat:
------------------
 src/imm/immnd/immnd_evt.c | 7 +++++++
 1 file changed, 7 insertions(+)


Testing Commands:
-----------------
N/A

Testing, Expected Results:
--------------------------
N/A

Conditions of Submission:
-------------------------
ACK from reviewers

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.


The information in this email is confidential and may be legally privileged. It 
is intended solely for the addressee. Any opinions expressed are mine and do 
not necessarily represent the opinions of the Company. Emails are susceptible 
to interference. If you are not the intended recipient, any disclosure, 
copying, distribution or any action taken or omitted to be taken in reliance on 
it, is strictly prohibited and may be unlawful. If you have received this 
message in error, do not open any attachments but please notify the Endava 
Service Desk on (+44 (0)870 423 0187), and delete this message from your 
system. The sender accepts no responsibility for information, errors or 
omissions in this email, or for its use or misuse, or for any act committed or 
omitted in connection with this communication. If in doubt, please verify the 
authenticity of the contents with the sender. Please rely on your own virus 
checkers as no responsibility is taken by the sender for any damage rising out 
of any bug or virus infection.

Endava plc is a company registered in England under company number 5722669 
whose registered office is at 125 Old Broad Street, London, EC2N 1AR, United 
Kingdom. Endava plc is the Endava group holding company and does not provide 
any services to clients. Each of Endava plc and its subsidiaries is a separate 
legal entity and has no liability for another such entity's acts or omissions.

_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to