Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] KeepExistingSubscriptions flag is not being handled correctly #22774

Closed
mrjerryjohns opened this issue Sep 20, 2022 · 0 comments · Fixed by #22805
Closed

[BUG] KeepExistingSubscriptions flag is not being handled correctly #22774

mrjerryjohns opened this issue Sep 20, 2022 · 0 comments · Fixed by #22805
Assignees
Labels
Interaction Model Work spec Mismatch between spec and implementation

Comments

@mrjerryjohns
Copy link
Contributor

mrjerryjohns commented Sep 20, 2022

Reproduction steps

The spec states that the KeepExistingSubscriptions flag be processed first before doing any further processing of the SubscribeRequest message:

If KeepSubscriptions is FALSE, all existing or pending subscriptions on the publisher for this subscriber SHALL be terminated.

This layer SHALL process the Subscribe Request action as defined in Incoming Read Request and Subscribe Request Action Processing.

However in the SDK, the order is inverted - processing of the attribute and event path lists, and ensuring sufficient resources exist is done first before handling the KeepSubscriptions flag.

Impact

An incorrect subscription may get evicted to make way for the new subscription, when in fact, subscriptions from the originating peer are what should get evicted. The wrongly selected subscription would be from other controllers on the same fabric

This means that when all subscription slots are occupied (i.e 3 subs / fabric, 5 fabrics), that we cannot up-hold the spec stated minimas since re-subscriptions from any of the 15 subscribers will cause an eviction of another subscription inadvertently.

Bug prevalence

always

GitHub hash of the SDK that was being used

master

Platform

core

Platform Version(s)

No response

Anything else?

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Interaction Model Work spec Mismatch between spec and implementation
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant