When standby takes active role, "new" active logsv starts one thread imm_impl_restore_thread
to set OI implementer for LOG service. In the meantime, the main thread is still there, ready to receive any coming requests.
So, the picture here is there are 02 threads using one OiHandle concurrently - imm_impl_restore_thread
and main thread. It violates the IMM rule, stated in IMM PR doc,
"the developer must avoid using the same handle concurrently from several threads."
In the trace log below, there are 02 problems caused by using OiHandle in 02 different threads:
1) Get ERR_BAD_OPERATION
as do request to IMM while no implementer have been set.
Sep 17 18:22:04 SC-2 osaflogd[15047]: NO ACTIVE request
Sep 17 18:22:04 SC-2 osaflogd[15047]: ER ERR_BAD_OPERATION: The SaImmOiHandleT is not associated with any implementer name
...
Sep 17 18:22:04 SC-2 osafimmnd[15026]: NO Implementer connected: 211 (safLogService) <7, 2020f>
2) Get ERR_LIBRARY
as double LOCK from IMM side, logsv terminated.
Sep 17 20:07:59 SC-2 osafimmnd[14962]: NO Implementer connected: 401 (safLogService) <7, 2020f>
...
Sep 17 20:07:59 SC-2 osaflogd[14975]: saImmOiClassImplementerSet FAILED, rc = 2
….
Sep 17 20:08:09 SC-2 osafamfnd[15047]: NO 'safComp=LOG,safSu=SC-2,safSg=2N,safApp=OpenSAF' faulted due to 'avaDown' : Recovery is 'nodeFailfast'
Sep 17 20:08:09 SC-2 osafamfnd[15047]: ER safComp=LOG,safSu=SC-2,safSg=2N,safApp=OpenSAF Faulted due to:avaDown Recovery is:nodeFailfast
Tickets: #1527
Tickets: #1531
Tickets: #1609
Wiki: ChangeLog-4.7.1
Diff:
The fix will be pushed to 4.7 and default only. The problem exist also in 4.6 but the patch for 4.7 and default cannot be used in 4.6. A risk for 4.6 is that the tested patch cannot be used. A patch for 4.6 will be quite digfferent and may be a risk.
changeset: 7164:c0d0d0b6c5c4
tag: tip
parent: 7162:ef5fb872bddf
user: Lennart Lund lennart.lund@ericsson.com
date: Wed Dec 09 13:55:15 2015 +0100
summary: lgs: Correcting OI initializing thread handling [#1527]
rev: c0d0d0b6c5c445aa24698b7448a44110e52af48b
changeset: 7163:d5bfe1044dbe
branch: opensaf-4.7.x
parent: 7161:93df04ded5e1
user: Lennart Lund lennart.lund@ericsson.com
date: Wed Dec 09 13:55:15 2015 +0100
summary: lgs: Correcting OI initializing thread handling [#1527]
rev: d5bfe1044dbe08deb2eba6761919952f06467564
Related
Tickets:
#1527