Menu

#1341 IMM: Imma cl_node->replyPending does not work for async admin-op

4.5.2
fixed
None
defect
imm
lib
4.2
major
2015-04-28
2015-04-24
No

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.

Related

Tickets: #1340
Tickets: #1341
Tickets: #1351
Wiki: ChangeLog-4.5.2
Wiki: ChangeLog-4.6.1

Discussion

  • Anders Bjornerstedt

    • status: unassigned --> accepted
    • assigned_to: Anders Bjornerstedt
     
  • Anders Bjornerstedt

    • status: accepted --> review
     
  • Anders Bjornerstedt

    • status: review --> fixed
     
  • Anders Bjornerstedt

    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


Log in to post a comment.