saMsgMessageSend and Async calls return TRY_AGAIN forever after controller
failover.

If more than 1 ASAPi_MSG_TRACK_NTFY for deletion is processed by the cache, the
first time the cache entry will be deleted. When the second one comes in, before
a new queue registration message has been received, the cache entry will be
created with bad information, even though this is a delete operation.

Don't create cache entries for delete operations.
---
 src/msg/common/mqsv_asapi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/msg/common/mqsv_asapi.c b/src/msg/common/mqsv_asapi.c
index f39d564..8b6fb65 100644
--- a/src/msg/common/mqsv_asapi.c
+++ b/src/msg/common/mqsv_asapi.c
@@ -649,6 +649,11 @@ static uint32_t asapi_cache_update(ASAPi_OBJECT_INFO 
*pInfo,
                m_NCS_UNLOCK(&pCache->clock,
                             NCS_LOCK_WRITE); /* Unlock the cache */
        } else {                              /* Node deosn't exist */
+    if (ASAPi_QUEUE_DEL == opr || ASAPi_GROUP_DEL) {
+      /* no need to add node as this is a deletion */
+      return rc;
+    }
+
                /* Allocate the Cache Informaton node */
                pCache = m_MMGR_ALLOC_ASAPi_CACHE_INFO(asapi.my_svc_id);
                if (!pCache) {
-- 
2.9.5


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to