View Issue Details

IDProjectCategoryView StatusLast Update
0009130Compliance Test Tool (CTT) Unified Architecture1 - Script Issuepublic2023-09-06 13:06
ReporterGigantic Heisenberg Assigned ToPaul Hunkar  
PrioritynormalSeveritymajorReproducibilityalways
Status assignedResolutionopen 
Platformx86_64OSWindows 
Summary0009130: MonitoredItem.fromSettings() should not be called with with client handles different from MonitoredItem.GetNextClientHandIe()
Description

Problems occur in "Monitor Items 500/Err-001.js". RunOnce/beforeTest.js creates monitored items by calling MonitoredItem.fromSettings(). Thus client handle is obtained by calling MonitoredItem.GetNextClientHandIe() N times successively. Later "Monitor Items 500/initialize.js" calls MonitoredItem.GetRequiredNodes(), which uses MonitoredItem.fromSettings() by explicitly passing client handles. Thus monitored items are created with client handles between 1 and 501. In "Monitor Items 500/Err-001.js" additional Monitored items are created by cloning a subset of the monitored items created in "Monitor Items 500/initialize.js". Unfortunately the MonitoredItem.Clone() function uses MonitoredItem.GetNextClientHandIe(). Thus cloned monitored items have client handles starting at N+1. Since N is smaller than 500, monitored items with multiple defined client handles are used.

Steps To Reproduce

Execute "Monitor Items 500/Err-001.js" on a server that has less than 500 different items that can be monitored.

Additional Information

Note that this bug can be hidden, when executing "Monitor Basic/002.js" before "Monitor Items 500/Err-001.js", because "Monitor Basic/initialize.js", and "Monitor Basic/002.js" together call MonitoredItem.GetNextClientHandIe() M times. This causes MonitoredItems.clone() to use client handles starting at N + M + 1, which can be greater than 500.

TagsNo tags attached.
Files Affected

Activities

Paul Hunkar

2023-09-01 15:25

administrator   ~0019952

We are not understanding a problem - each subscription could have a different ClientId for the same variable? Are you seeing incorrect test results in the CTT - i.e. is the CTT not processing something correctly?

Remember a client handle is not used by a server - it is just returned with the specific Monitored item in the specific subscription.

Gigantic Heisenberg

2023-09-04 11:59

reporter   ~0019956

The described CTT test case fails with an error, when cleaning up test case by deleting previously created monitored items: "Delete MonitoredItems.Response.Results[0]=BadMonitoredItemIdInvalid(0x80420000), but Good". The proprietary OPC UA library that we use to implement our server logs a warning, when client handles are duplicated "Removing MonitoredItem "1521318008" with duplicate ClientHandle "116" from Subscription "3260890069". Assuming retry of a failed creation request." When preventing duplicated monitored items, log of OPC UA lib do not show described warning and test passes. I will ask the maintainer of the lib to give me a comment.

Gigantic Heisenberg

2023-09-06 12:43

reporter   ~0019969

Reconfiguration of our server might solve our problem. This issue can be closed from our point of view.

Gigantic Heisenberg

2023-09-06 13:06

reporter   ~0019971

See issue id=3482

Issue History

Date Modified Username Field Change
2023-08-31 14:28 Gigantic Heisenberg New Issue
2023-09-01 15:25 Paul Hunkar Assigned To => Paul Hunkar
2023-09-01 15:25 Paul Hunkar Status new => feedback
2023-09-01 15:25 Paul Hunkar Note Added: 0019952
2023-09-04 11:59 Gigantic Heisenberg Note Added: 0019956
2023-09-04 11:59 Gigantic Heisenberg Status feedback => assigned
2023-09-06 12:43 Gigantic Heisenberg Note Added: 0019969
2023-09-06 13:06 Gigantic Heisenberg Note Added: 0019971