Azure-Samples / iot-edge-opc-plc

Sample OPC UA server with nodes that generate random and increasing data, anomalies and much more ...
MIT License
218 stars 94 forks source link

Alarm condition nodemanager uses invalid nodeId, exception thrown #357

Closed mregen closed 3 months ago

mregen commented 3 months ago

Bug in Alarm nodemanager

This issue is for a: (mark with an x)

Minimal steps to reproduce

Any log messages given by the failure

<3>2024-05-07T04:20:26.062Z [opcua@311 ChannelId:"3"] - Error creating monitored items
System.ArgumentException: Invalid string NodeId without namespace index ('ns=').
   at Opc.Ua.NodeId.InternalParse(String text, Boolean namespaceSet)
   at Opc.Ua.NodeId.Parse(String text)
   at Opc.Ua.NodeId.op_Implicit(String text)
   at AlarmCondition.QuickstartNodeManager.AddNodeToComponentCache(ISystemContext context, NodeHandle handle, NodeState node) in D:\a\1\s\src\AlarmCondition\QuickstartNodeManager.cs:line 4007
   at AlarmCondition.QuickstartNodeManager.CreateMonitoredItem(ServerSystemContext context, NodeHandle handle, UInt32 subscriptionId, Double publishingInterval, DiagnosticsMasks diagnosticsMasks, TimestampsToReturn timestampsToReturn, MonitoredItemCreateRequest itemToCreate, Int64& globalIdCounter, MonitoringFilterResult& filterResult, IMonitoredItem& monitoredItem) in D:\a\1\s\src\AlarmCondition\QuickstartNodeManager.cs:line 3134
   at AlarmCondition.QuickstartNodeManager.CreateMonitoredItems(OperationContext context, UInt32 subscriptionId, Double publishingInterval, TimestampsToReturn timestampsToReturn, IList`1 itemsToCreate, IList`1 errors, IList`1 filterErrors, IList`1 monitoredItems, Int64& globalIdCounter) in D:\a\1\s\src\AlarmCondition\QuickstartNodeManager.cs:line 3062
   at Opc.Ua.Server.MasterNodeManager.CreateMonitoredItems(OperationContext context, UInt32 subscriptionId, Double publishingInterval, TimestampsToReturn timestampsToReturn, IList`1 itemsToCreate, IList`1 errors, IList`1 filterResults, IList`1 monitoredItems)
   at Opc.Ua.Server.Subscription.CreateMonitoredItems(OperationContext context, TimestampsToReturn timestampsToReturn, MonitoredItemCreateRequestCollection itemsToCreate, MonitoredItemCreateResultCollection& results, DiagnosticInfoCollection& diagnosticInfos)
   at Opc.Ua.Server.SubscriptionManager.CreateMonitoredItems(OperationContext context, UInt32 subscriptionId, TimestampsToReturn timestampsToReturn, MonitoredItemCreateRequestCollection itemsToCreate, MonitoredItemCreateResultCollection& results, DiagnosticInfoCollection& diagnosticInfos)
   at Opc.Ua.Server.StandardServer.CreateMonitoredItems(RequestHeader requestHeader, UInt32 subscriptionId, TimestampsToReturn timestampsToReturn, MonitoredItemCreateRequestCollection itemsToCreate, MonitoredItemCreateResultCollection& results, DiagnosticInfoCollection& diagnosticInfos)
   at OpcPlc.PlcServer.CreateMonitoredItems(RequestHeader requestHeader, UInt32 subscriptionId, TimestampsToReturn timestampsToReturn, MonitoredItemCreateRequestCollection itemsToCreate, MonitoredItemCreateResultCollection& results, DiagnosticInfoCollection& diagnosticInfos) in D:\a\1\s\src\PlcServer.cs:line 138
<3>2024-05-07T04:20:26.115Z [opcua@311 ChannelId:"3"] - SERVER - Unexpected Service Fault: Invalid string NodeId without namespace index ('ns=').
System.ArgumentException: Invalid string NodeId without namespace index ('ns=').
   at Opc.Ua.NodeId.InternalParse(String text, Boolean namespaceSet)

Expected/desired behavior

OS and Version?

Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)

Versions

Mention any other details that might be useful


Thanks! We'll be in touch soon.