Łukasz Dywicki created PLC4X-342:
------------------------------------

             Summary: OPC UA silently fails to handle subscription response
                 Key: PLC4X-342
                 URL: https://issues.apache.org/jira/browse/PLC4X-342
             Project: Apache PLC4X
          Issue Type: Bug
          Components: Driver-OPC-UA
    Affects Versions: 0.9.1
            Reporter: Łukasz Dywicki
            Assignee: Ben Hutcheson
         Attachments: opcua_monitored_item_wrong_index..pcapng

While test of OPC UA simulator coming from freeopcua I found out that our 
client doesn't work with it. Maybe it is an issue of how they encode payload, 
maybe it is inconsistency in the spec, not sure - the end result is that actual 
response processing error gets swallowed and driver hangs.

Guilty code is in {{OpcuaSubscriptionHandle}}:
{code}
for (MonitoredItemCreateResult result : 
responseMessage.getResults().toArray(new MonitoredItemCreateResult[0])) {
    if (OpcuaStatusCode.enumForValue(result.getStatusCode().getStatusCode()) != 
OpcuaStatusCode.Good) {
        LOGGER.error("Invalid Field {}, subscription created without this 
field", fieldNames.get((int) result.getMonitoredItemId()));
    } else {
        LOGGER.debug("Field {} was added to the subscription", 
fieldNames.get((int) result.getMonitoredItemId() - 1)); // !monitored item id 
might be inconsistent!
    }
}
{/code}

Copy of traffic causing issue in attachment.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to