View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0009130 | Compliance Test Tool (CTT) Unified Architecture | 1 - Script Issue | public | 2023-08-31 14:28 | 2023-09-06 13:06 |
Reporter | Gigantic Heisenberg | Assigned To | Paul Hunkar | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | assigned | Resolution | open | ||
Platform | x86_64 | OS | Windows | ||
Summary | 0009130: 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. | ||||
Tags | No tags attached. | ||||
Files Affected | |||||
|
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. |
|
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. |
|
Reconfiguration of our server might solve our problem. This issue can be closed from our point of view. |
|
See issue id=3482 |
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 |