- **status**: review --> fixed
- **Comment**:
commit ea0c7cce3fa4593f556016fa3506126c6d3f5c21 (HEAD -> develop,
origin/develop, ticket-3397-1, ticket-3397)
Author: Thien Minh Huynh <[email protected]>
Date: Wed Apr 15 06:25:48 2026 +0200
mds: add test case for explicit replay [#3397]
commit 6cbda59cf873e54cd7d67334e48dac562b187504
Author: Thien Minh Huynh <[email protected]>
Date: Thu Apr 9 10:03:34 2026 +0700
mds: fix explicit replay callback metadata [#3397]
---
**[tickets:#3397] MDS: Explicit subscription replay uses wrong state/version
after implicit subscribe**
**Status:** fixed
**Milestone:** 5.27.01
**Created:** Mon Apr 13, 2026 08:31 AM UTC by Thien Minh Huynh
**Last Updated:** Thu Apr 23, 2026 03:09 AM UTC
**Owner:** Thien Minh Huynh
Steps to reproduce
------------------
1. Start an MDS test setup with an ADEST subscriber and a VDEST providing
NCSMDS_SVC_ID_INTERNAL_MIN.
2. Create an implicit subscription by sending a message from
NCSMDS_SVC_ID_EXTERNAL_MIN to NCSMDS_SVC_ID_INTERNAL_MIN on the active VDEST.
3. Convert that existing implicit subscription into an explicit subscription
using mds_service_subscribe().
4. Retrieve the replayed service event with mds_service_retrieve().
5. Verify the replayed event/version.
6. Variant A: leave the VDEST active and expect an NCSMDS_UP replay with the
current active version.
7. Variant B: demote the active VDEST to standby first, let await-active run,
then expect an NCSMDS_NO_ACTIVE replay with the last active version.
Observed behaviour
------------------
When an implicit subscription is converted to an explicit subscription, the
replayed service event does not reliably reflect the correct state/version of
the remote service.
There are two incorrect replay scenarios:
- the explicit replay may fail to return the current active UP version
- the explicit replay may fail to return the last-active NO_ACTIVE version
during await-active
Expected behaviour
------------------
Converting an implicit subscription to an explicit subscription should replay
the correct current service state:
- if the remote service is active, replay NCSMDS_UP with the current active
version
- if the active instance has gone away and await-active is running, replay
NCSMDS_NO_ACTIVE with the last active version
use testapi to reproduce
---
Sent from sourceforge.net because [email protected] is
subscribed to https://sourceforge.net/p/opensaf/tickets/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/opensaf/admin/tickets/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list.
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets