Thread Consumption Suspected Message in CompactRIO Error Log

Updated Dec 20, 2021

Reported In

Hardware

  • CompactRIO Controller

Software

  • LabVIEW Real-Time Module

Issue Details

I am running a Real-Time application on my CompactRIO (cRIO) controller.
Looking at the error log file on the cRIO, I found a series of messages similar to the following: 

starting LV_ESys2_Thr0 , capacity: 24 at [3608804567.59429502, (15:42:47.594295000 2018:05:10)]
starting LV_ESys2_Thr1 , capacity: 24 at [3608804567.59429502, (15:42:47.594295000 2018:05:10)]
starting LV_ESys2_Thr2 , capacity: 24 at [3608804567.59429502, (15:42:47.594295000 2018:05:10)]
starting LV_ESys2_Thr3 , capacity: 24 at [3608804567.59429502, (15:42:47.594295000 2018:05:10)]
starting LV_ESys2_Thr4 , capacity: 24 at [3608804567.59429502, (15:42:47.594295000 2018:05:10)]
starting LV_ESys2_Thr5 , capacity: 24 at [3608804567.59429502, (15:42:47.594295000 2018:05:10)]
starting LV_ESys2_Thr6 , capacity: 24 at [3608804567.59429502, (15:42:47.594295000 2018:05:10)]
starting LV_ESys2_Thr7 , capacity: 24 at [3608804567.59429502, (15:42:47.594295000 2018:05:10)]
starting LV_ESys5_Thr0 , capacity: 2 at [3608804567.60755396, (15:42:47.607554000 2018:05:10)]
starting LV_ESys5_Thr1 , capacity: 2 at [3608804567.60755396, (15:42:47.607554000 2018:05:10)]
starting LV_ESys3_Thr0 , capacity: 24 at [3608804567.99645901, (15:42:47.996459000 2018:05:10)]
starting LV_ESys3_Thr1 , capacity: 24 at [3608804567.99645901, (15:42:47.996459000 2018:05:10)]
starting LV_ESys3_Thr2 , capacity: 24 at [3608804567.99645901, (15:42:47.996459000 2018:05:10)]
starting LV_ESys3_Thr3 , capacity: 24 at [3608804567.99645901, (15:42:47.996459000 2018:05:10)]
starting LV_ESys3_Thr4 , capacity: 24 at [3608804567.99645901, (15:42:47.996459000 2018:05:10)]
starting LV_ESys3_Thr5 , capacity: 24 at [3608804567.99645901, (15:42:47.996459000 2018:05:10)]
starting LV_ESys3_Thr6 , capacity: 24 at [3608804567.99645901, (15:42:47.996459000 2018:05:10)]
starting LV_ESys3_Thr7 , capacity: 24 at [3608804567.99645901, (15:42:47.996459000 2018:05:10)]
starting LV_ESys1248001a_Thr0 , capacity: 1 at [3608804569.72330904, (15:42:49.723309000 2018:05:10)]
Thread consumption suspected: 8 Try starting 4 threads
starting LV_ESys2_Thr8 , capacity: 24 at [3608804612.19078684, (15:43:32.190787000 2018:05:10)]
starting LV_ESys2_Thr9 , capacity: 24 at [3608804612.19078684, (15:43:32.190787000 2018:05:10)]
starting LV_ESys2_Thr10 , capacity: 24 at [3608804612.19078684, (15:43:32.190787000 2018:05:10)]
starting LV_ESys2_Thr11 , capacity: 24 at [3608804612.19078684, (15:43:32.190787000 2018:05:10)]


What does "Thread consumption suspected" mean? Should I be concerned about these messages?
 

Solution

The message in the log file is representative of a pretty normal LabVIEW behavior and, while it may have some performance impact, it probably doesn't effect stability.
 

Additional Information

LabVIEW uses a set of thread pools ("execution systems") to manage the parallel execution of G code. The pools start out with a predefined number of threads per execution system, and the pool may grow if the runtime engine determines that more threads are needed. The message you are seeing is logged when growth occurs. It only applies to the execution system threads and has no relation to time loop threads or any of the hundreds of other threads which are running on the system. In this context, "consumption" means that the thread is occupied executing non-G code and has been doing so for longer than some pre-configured threshold. This indicates that the thread is not available to help with other pending work and so other threads may be necessary.
This often means that the code in question is calling into the LabVIEW RunTime or some external DLL to perform some long-running operation.
You will also see consumption when making calls from different loops into external code which cannot run in parallel, as worker threads will have to wait in the external call while other threads complete their work.