This bug was introduced in 4.2 but will only be fixed in 4.5 and later.
The client_node struct defined in imma_cb.h contains a member 'replyPending'.
The meaning of this member is that if it is not zero/false then there has
been made a request (syncronous or asyncronous) from the imma client (OM or OI)
sent to the IMM server for which no reply has yet been received from the server.
The member is used primarily at local IMMND restart to detect if a handle
must be invalidated, i.e. resurrect is impossible when the IMMND has synced.
IF a request has been sent and the local IMND goes down before a reply has
been received, then the reply has been lost. Even though the IMMND process is
restartable and will sync back all esential global state. IT does not resync
local state such as request continuations telling it which clients are still
waiting for a reply. Such continuations are not replicated in the cluster.
Because a request that should have received a reply has not received a reply,
the interface contract has been violated and the client must be informed of
this. The only way to do this over the IMMA API is to provide a return code
of ERR_BAD_HANDLE. In the case of an asyncronous reply, such a reply would
have been a callback received by means of a poll on a selection object related
to the handle. In that case the poll will be triggered such that saImmOmDispatch
exits with ERR_BAD_HANDLE.
The asyncronous variant of this does not work if more than one asyncronous request
is outstanding on the same handle. This is possible without violating the rule
that says an imm-handles shall only be used by one thread at a time. A single
thread can send several asyncronopus admin-operation requests in succession,
before entering poll to receive and process replies. That is in a sense the
whole point with an asyncronous API.
Tickets: #1340
Tickets: #1341
Tickets: #1351
Wiki: ChangeLog-4.5.2
Wiki: ChangeLog-4.6.1
changeset: 6501:2713e84fe99d
tag: tip
parent: 6498:91f1911f7451
user: Anders Bjornerstedt anders.bjornerstedt@ericsson.com
date: Mon Apr 27 09:48:03 2015 +0200
summary: immsv: Revert imma_client_node->replyPending to unsigned char [#1341]
changeset: 6500:97eb2e7b29bb
branch: opensaf-4.6.x
parent: 6497:60b2136fcadf
user: Anders Bjornerstedt anders.bjornerstedt@ericsson.com
date: Mon Apr 27 09:48:03 2015 +0200
summary: immsv: Revert imma_client_node->replyPending to unsigned char [#1341]
changeset: 6499:b2ca36ec5d86
branch: opensaf-4.5.x
parent: 6492:7cf07ee58506
user: Anders Bjornerstedt anders.bjornerstedt@ericsson.com
date: Mon Apr 27 09:48:03 2015 +0200
summary: immsv: Revert imma_client_node->replyPending to unsigned char [#1341]
Related
Tickets:
#1341