You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@plc4x.apache.org by "Ben Hutcheson (Jira)" <ji...@apache.org> on 2022/06/09 20:46:00 UTC
[jira] [Commented] (PLC4X-342) OPC UA silently fails to handle subscription response
[ https://issues.apache.org/jira/browse/PLC4X-342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17552423#comment-17552423 ]
Ben Hutcheson commented on PLC4X-342:
-------------------------------------
[~ldywicki] Can this be closed?
> 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
> Priority: Major
> Attachments: Monitored Item Server Side ID.png, image-2022-05-16-05-02-37-149.png, 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:java}
> 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)