View Issue Details

IDProjectCategoryView StatusLast Update
000912210000-004: ServicesSpecpublic2024-03-19 20:48
ReporterMarc Schier Assigned ToMatthias Damm  
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Product Version1.05.02 
Fixed in Version1.05.04 RC1 
Summary0009122: Issue in Subscription state machine
Description

The subscription state machine in https://reference.opcfoundation.org/Core/Part4/v104/docs/5.13.1 has the following “condition” defined:

SubscriptionAssignedToClient A boolean value that is set to TRUE only when the Subscription requested to be deleted is assigned to the Client that issued the request. A Subscription is assigned to the Client that created it. That assignment can only be changed through successful completion of the TransferSubscriptions Service.

This condition is only validated in the DeleteSubscription event.

Which led us to believe that it is possible to modify a subscription e.g., using ModifySubscription or CreateMonitoredItems with an identifier of a subscription not created and part of the client session used to make the call. Except for the DeleteSubscription call which requires “ownership”. We could not find anywhere in the specifications anything contrary or explict.

After discussing with Randy he suggested to open this Mantis issue as it is not intended to access subscriptions in other sessions. I assume the following would need to be changed:

  • Remove the SubscriptionAssignedToClient Condition from the state machine description
  • as well as the transition 0000026 related to it (then it should not reset the lifetime counter of a session that is not owned by the client, or?)
  • Clarify in the subscription section that it is invalid to access a subscription from a session that does not own it. Specify the error code to return if a subscription id is provided that is owned by another session (Bad_SubscriptionIdInvalid is assumed).

Unless it is found that accessing a subscription by id that is assigned to a different session is desired.

TagsNo tags attached.
Commit Version1.05.04 RC
Fix Due Date2024-01-15

Activities

Matthias Damm

2023-12-05 16:56

developer   ~0020491

Different changes discussed - covered ToDo in 1.05.04 draft 1

Matthias Damm

2023-12-06 07:33

developer   ~0020497

Made the following changes:

(1) Bad_SubscriptionIdInvalid status code
Added following to description:
The Subscription id is not known or is not valid in the context of the Session used to call the Subscription related Service.

(2) Table 86 – State variables and parameters
Change SubscriptionAssignedToClient to SubscriptionAssignedToSession
Updated description to:
A boolean value that is set to TRUE only when the Subscription related Service is called with the Session the Subscription is assigned to. A Subscription is assigned to the Session that created it. That assignment can only be changed through successful completion of the TransferSubscriptions Service.

(3) Table 85 – Subscription State Table
[18] Added '&& SubscriptionAssignedToSession == TRUE' for ModifySubscription
[19] Added '&& SubscriptionAssignedToSession == TRUE' for ModifySubscription
[25] changed SubscriptionAssignedToClient to SubscriptionAssignedToSession
[26] Changed condition to "Receive Subscription related Request && SubscriptionAssignedToSession == FALSE"
[26] Removed ResetLifetimeCounter()

Jim Luth

2024-03-19 20:48

administrator   ~0020948

Agreed to changes edited in Dallas F2F.

Issue History

Date Modified Username Field Change
2023-08-23 05:41 Marc Schier New Issue
2023-12-05 16:55 Matthias Damm Assigned To => Matthias Damm
2023-12-05 16:55 Matthias Damm Status new => assigned
2023-12-05 16:56 Matthias Damm Note Added: 0020491
2023-12-05 16:57 Jim Luth Commit Version => 1.05.04 RC
2023-12-05 16:57 Jim Luth Fix Due Date => 2024-01-15
2023-12-06 07:33 Matthias Damm Status assigned => resolved
2023-12-06 07:33 Matthias Damm Resolution open => fixed
2023-12-06 07:33 Matthias Damm Note Added: 0020497
2024-03-19 20:48 Jim Luth Status resolved => closed
2024-03-19 20:48 Jim Luth Fixed in Version => 1.05.04 RC1
2024-03-19 20:48 Jim Luth Note Added: 0020948