View Issue Details

IDProjectCategoryView StatusLast Update
0005549CertificationImplementation Bugpublic2020-04-24 18:24
ReporterKevin Herron (Inductive Automation) Assigned ToAlexander Allmendinger  
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Product Version1.03 
Summary0005549: CTT Subscription Transfer 015 Implementation Defect
Description

Subscription Transfer case 015 is implemented incorrectly.

The test fails against the Milo demo server because it asserts that the PublishResponse for the third PublishRequest, made on the original session after the second subscription transfer completes, contains a data change.

This assertion is flawed because it does not account for the fact that a StatusChangeNotification containing a StatusCode of Good_SubscriptionTransferred is supposed to be issued to the original session after the transfer is complete. Since this third PublishRequest is the next PublishRequest sent to the original session it only seems logical that this PublishResponse should contain the StatusChangeNotification.

I would further posit that any server currently passing this test is actually non-compliant because it should be sending a StatusChangeNotification, not a DataChangeNotification, with the next available PublishRequest.

I've attached a Wireshark capture of the test traffic.

TagsNo tags attached.
Attached Files

Activities

Kevin Herron (Inductive Automation)

2020-03-22 01:47

reporter   ~0011813

I thought I'd try to fix or workaround this by calling PublishHelper.Execute() after the transfer to consume the StatusChangeNotification but that has revealed another defect.

The test fails:

Publish().Results[0] expected 'Good', but received: BadSubscriptionIdInvalid (0x80280000)
Publish.Request.SubscriptionAcknowledgements[0] = SubscriptionId: 1, SequenceNumber: 1

However it's reasonable to expected Bad_SubscriptionIdInvalid because the session sending the PublishRequest no longer owns this subscription (it was just transferred), so it should not be allowed to acknowledge available notifications any more.

Paul Hunkar

2020-04-24 18:24

manager   ~0011992

We reviewed this in a CMP call (with a longer discussion)

The TransferSubscription description in Part 4 does not discuss what happens to the queue for a subscription when it is initially created on a transfer in (i.e. the queue the the session to which a subscription was transferred. ) in this case the Subscription is transferred back into a session that had the original subscription - it could have been initialized or it could have been left over so - both getting the Good_SubscriptionTransferred or just the initial values would be possible - since the specification is silent.

we think the test should be updated to send an publish on the first session after it is transferred away, in which case you should only see the initial values when it is transferred back in. This is updating the test case and test script.

Will clone the issue for the test case - original issue will stay on test scripts

Issue History

Date Modified Username Field Change
2020-03-21 23:35 Kevin Herron (Inductive Automation) New Issue
2020-03-21 23:35 Kevin Herron (Inductive Automation) File Added: SubscriptionTransfer015.pcapng
2020-03-22 01:47 Kevin Herron (Inductive Automation) Note Added: 0011813
2020-04-24 18:24 Paul Hunkar Assigned To => Alexander Allmendinger
2020-04-24 18:24 Paul Hunkar Status new => assigned
2020-04-24 18:24 Paul Hunkar Note Added: 0011992
2020-04-24 18:24 Paul Hunkar Issue cloned: 0005590