SLSC Initialize Hangs on Pharlap RT Target with Multiple Sessions

Updated Dec 18, 2023

Reported In

Hardware

  • Chassis for SLSC
  • SLSC-12001
  • SLSC-12201
  • PXIe-8880

Software

  • VeriStand

Driver

  • NI-SLSC

Operating System

  • PharLap

Issue Details

When I try to initialize a large number of SLSC Sessions (using the SLSC API directly, or by creating a large number of SLSC Custom Devices in VeriStand) on a PXI RT Target running Pharlap, my application will hang or become unresponsive when I try to open the nth session.  How can I expand my application to allow for more SLSC sessions without causing my application to hang?

Solution

To resolve this issue, increase the number of available sockets on the Pharlap RT Target so that each SLSC Session can reserve 3 sockets without reaching the default maximum.  You can increase the maximum number of sockets on Pharlap (the default is 256) by adding the text below to the ni-rt.ini file on the Pharlap RT controller:

[TCP_Stack_Config]

Max_Sockets = xxx


Where xxx is a number greater than default number 256, that also meets your max number of session requirements. 

Note: If using NI SLSC 19.5 or previous, increasing this ini value above 256 may cause Phar Lap DNS lookup errors, please reach out to NI Technical Support if this is encountered. Other drivers and processes on the Pharlap RT target may also be using sockets, so keep that in mind when specifying a maximum socket number for your application.

Additional Information

Each SLSC session requires the use of three sockets (a socket is a software object that acts as an endpoint for communication).  By default, the Pharlap OS has a max socket number of 256.  If enough SLSC sessions are opened (and/or other processes are using a significant number of SLSC sessions), this default maximum could be reached, at which point the SLSC Initialize Session function would be stuck asking the operating system for resources, and waiting for one of these sockets to become available.