steps :
1. create a ccb
2. saImmOmCcbAbort the ccb, the return code should be TRY_AGAIN, which can be re-produced when fevs queue is full
T2 Too many pending incoming FEVS messages (> 16) enqueueing async message. Backlog:1
The saImmOmCcbAbort ccb will create the imma_newCcbId, without finalizing old ccbid.
solution:
do not create new ccbid when the return code is TRY_AGAIN or TIMEOUT
TRY_AGAIN ok.
But ERR_TIMEOUT ? Not sure what you are doing here.
The two error codes are different in meaning.
TRY_AGAIN means the client KNOWS that the call was NOT processed.
TIMEOUT mens the client does NOT KNOW if the call was processed in the server or not.
TIMEOUT may be (is typically) generated in the client library when the client has waited too long
for a response from the server.
The problem here is to avoid newccbid when the old ccbid is not finalized when saImmOmCcbAbort is called.
If the TIMEOUT is returned, then the agent may re-try saImmOmCcbAbort, to avoid old ccb not finalized. If the old ccb is finaized, then server will return BD_HANDLE, which is converted to SA_AIS_OK in library.
changeset: 8732:ea44141c05ee
branch: opensaf-5.0.x
parent: 8727:9a1452dcd190
user: Neelakanta Reddy reddy.neelakanta@oracle.com
date: Tue Mar 28 16:25:09 2017 +0530
summary: retry ccbabort when failed with TRY_AGAIN and TIMEOUT[#2398]
changeset: 8733:be2fd9824bc4
branch: opensaf-5.1.x
parent: 8728:bdd9cdb1ced9
user: Neelakanta Reddy reddy.neelakanta@oracle.com
date: Tue Mar 28 16:25:09 2017 +0530
summary: retry ccbabort when failed with TRY_AGAIN and TIMEOUT[#2398]
changeset: 8734:5810bba59478
tag: tip
parent: 8731:52f7fab7b8a7
user: Neelakanta Reddy reddy.neelakanta@oracle.com
date: Tue Mar 28 16:30:11 2017 +0530
summary: imm:retry ccbabort when failed with TRY_AGAIN and TIMEOUT[#2398]
Related
Tickets:
#2398