Error 56 Occurred When Opening DataSocket Connection to a Shared Variable

Updated Aug 22, 2023

Reported In

Software

  • LabVIEW

Issue Details

A LabVIEW client application opens a connection to a shared variable hosted on a server machine. The client runs without error. When I upgraded National Instruments software on the client, I get the following error:

Error 56 occurred at an unidentified location

Possible reason(s):

LabVIEW:  The network operation exceeded the user-specified or system time limit.

trying to open the connection to the variable.


I have already followed the instructions in Configuring LabVIEW, LabVIEW DSC, NI Variable Engine and Lookout to Work with the Windows Firewall, but I still get the error. Uninstalling the new component does not resolve the issue.

Solution

This KnowledgeBase applies to a specific corner case. To determine if this case applies to your system, first follow the instructions in Configuring LabVIEW, LabVIEW DSC, NI Variable Engine and Lookout to Work with the Windows Firewall, then use one of the following methods.
  • Disable the firewall on the server that hosts the shared variable and rerun the client application. If the error goes away, this issue likely applies to your system.
  • Check the version of C:\Windows\System32\lkads.dll on the client and the server. If the client is running version ≥ 5.1.0 and the server is running version < 5.1.0, this issue likely applies to your system.
  • Use a network monitoring application to view TCP and UDP traffic from the client to the host system. From the client, open a DataSocket connection to the PSP URL of a variable on the server. If you see a TCP request on port 2343 and then get error 56 in the client application, this error likely applies to your system.
All versions of LabVIEW running on a system use the same Logos protocol stack to communicate with LabVIEW Shared Variables. This issue affects variable clients that have the 2009 Logos protocol stack (or later) connecting to a system running the 8.5 or 8.6 stack when the Windows Firewall (or another firewall with similar behavior) is enabled on the server. 

The firewall will silently ignore a request for a blocked TCP port. This behavior is likely to frustrate port scanning attacks. As a result, the Logos protocol receives no indication that the port is not available until the 20 second TCP connection timeout expires. The application gives the error after the timeout is reached. In order to resolve the issue, use one of the following methods.
  • Upgrade the server system to use the 2009 Logos protocol stack. Install the same software as on the client, and verify that C:\Windows\System32\lkads.dll upgrades to ≥ 5.1.0 on the server. This resolves the issue because lkads.dll uses its firewall exception to open port 2343.
  • Add an exception to the server's firewall for TCP port 2343.
  • Increase the timeout on the DataSocket Open function.
  • Contact National Instruments technical support  for other options.