Ignition OPC UA fails after upgrade

Hello,

After upgrading to Ignition-7.9.9-linux-x64 from 7.9.6 Ignition OPC UA went into a fault. Rediscovering OPC endpoint, restarting OPC module does not help. The gateway architecture and the environment show N/A.

When I change the Ignition server IP address to something outside the PLC address subnet, the Device becomes unreachable (understandably), but the OPC connection comes up as good!

Please give your ideas what this can be.

1 Like

Try this:

Set the gateway to the IP address you want. Go to Configure > OPC-UA Server > Settings and set the Endpoint Address setting to that IP as well. Restart the gateway. Do endpoint discovery again when it comes back online.

Thanks Kevin. It won’t let me to use IP address in the endpoint address. Only localhost works.

After you completed the other steps and restarted the gateway is there any error in the logs regarding being able to bind to that IP address or falling back?

OK, I changed the UA server setting from localhost to my IP and restarted the gateway. Now I was able to use IP in the endpoint discovery successfully, but the server status comes up as faulted again with Bad Timeout.

There’s certainly something suspicious about it working while your gateway has one IP address but not another, but I’m not sure what it could be. The status page missing info in one of the configurations is also odd.

What’s the output of ifconfig or ip -4 addr, whichever your server has? What happens when you traceroute to 10.30.148.21?

IP 10.30.148.21 was just a random IP outside PLC subnet to confirm that OPC comes up as good. The correct IP is 10.30.48.21 which is set up right now.

One of the things that happens when the session is activated is the server ends up doing a call to InetAddress.getLocalHost().getHostAddress() (for reasons that don’t make any sense; this call should be removed).

We’ve seen DNS lookups take a long time on Linux in the past. The behavior you’re seeing makes it seem like the lookup succeeds quickly when you’re assigned to the off-subnet test IP, but takes a long time with the correct IP.

Try adding your IP address and hostname to /etc/hosts and see if it works.

Adding IP to hosts did not help unfortunately. I downgraded from 7.9.9 to 7.9.6 and everything started to work straight away! The question now is what do I need to do? I am subscribed to the updates, but 7.9.8 and 7.9.9 are not compatible with my system and the bug is not found.

I’m almost certain the problem is how long your system takes to resolve localhost when you’re set up with the correct IP address.

That 16 second timeout on session-related operations when the UA client connects didn’t exist in 7.9.6. The resolution is probably taking just as long but the longer timeout allows the connection to complete.

OK, how can I test this? Is there way to extend the timeout? Can I see it in the logs? There was a definitely much faster OPC status change to Connected on 7.9.6 than to Faulted on 7.9.9.