View Issue Details

IDProjectCategoryView StatusLast Update
0000321UAImplementation Bugpublic2008-02-27 06:27
ReporterBrent Bowers Assigned ToRandy Armstrong  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Summary0000321: Server enters an infinite loop if you call method with custom structure as an input argument
Description

If a method call has an input argument that is a structure defined in a model library instead of a base OPC UA type, the server enters an endless tight loop. For example, I modified SampleDesign.xml to add a fourth input parameter to the CreateInstance method, using DataType="AddressDataType".

There are two problems going on:
1) The OPC UA server uses the contents of the Opc.Ua.Sample.NodeSet.xml file to validate the input arguments in the CoreNodeManager.Call method. In CoreNodeManager.Call the NodeId of the data type for the argument of type AddressDataType is ns=1;i=84, which is the same value as in the NodeSet.xml file. In the sample server though, the proper namespace index is ns=6. It seems that in the case of input arguments, the namespace index in NodeIds in ExtensionObjects is not being translated when read in by the server.

2) The TypeTable.IsEncodingOf method has an endless loop in
while (!NodeId.IsNull(typeId) && localTypeId != typeId)
Neither the localTypeId nor typeId local variables are modified in the loop so if the type or its direct base type is not a match then an infinite loop occurs.

The
m_server.TypeTree.IsEncodingFor(argumentDefinition.DataType, argumentValue)

Additional Information

Version 1.0.200.0

TagsNo tags attached.
Attached Files
Opc.Ua.Sample.NodeSet.xml (222,782 bytes)   
Opc.Ua.Sample.NodeSet.xml (222,782 bytes)   
SampleDesign.xml (25,419 bytes)   
SampleDesign.xml (25,419 bytes)   
Fix Due Date

Activities

Randy Armstrong

2008-02-27 06:27

administrator   ~0000605

Problem was caused by missing assignment in a loop used to verify that the correct structure type was provided.

Issue History

Date Modified Username Field Change
2008-02-21 04:01 Brent Bowers New Issue
2008-02-21 04:01 Brent Bowers File Added: Opc.Ua.Sample.NodeSet.xml
2008-02-21 04:03 Brent Bowers File Added: SampleDesign.xml
2008-02-27 06:26 Randy Armstrong Status new => assigned
2008-02-27 06:26 Randy Armstrong Assigned To => Randy Armstrong
2008-02-27 06:27 Randy Armstrong Status assigned => resolved
2008-02-27 06:27 Randy Armstrong Resolution open => fixed
2008-02-27 06:27 Randy Armstrong Note Added: 0000605