Impact Acquire SDK .NET
Image transfer From USB3 Vision™ Devices Stops Randomly On A Linux System

Symptoms

When operating one or multiple USB3 Vision™ devices on a Linux system after a random time images can no longer be acquired.

Running

sudo journalctl

with or without additional option afterwards displays messages similar to this:

May 05 17:21:30 svc-527521 kernel: xhci_hcd 0000:00:14.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
May 05 17:21:30 svc-527521 kernel: xhci_hcd 0000:00:14.0: WARN Event TRB for slot 10 ep 6 with no TDs queued?

Running commands like

uname -srm

shows a kernel version of 4.19 or at least smaller than 5.10.

Cause

The exact reasons for this effect are unknown but there is a good chance that a bug in the Linux kernel is responsible for the behaviour:

Depending on the number of cameras used in parallel, the way these cameras are operated in terms of data throughput and trigger behaviour as well as other conditions like used host controllers it can take anything between 5 minutes and several hours to encounter this effect. In most scenarios it will not show at all. Digging through the Internet seems to show that a combination of kernel version, host controller chip-set and maybe even the USB chip used inside the device have an impact.

  • Version 4.19 of the Linux kernel was released in October 2018: Here the issue could be observed, earlier versions might be affected
  • Version 5.10 of the Linux kernel was released in December 2020: Here the issue could NOT be observed anymore, versions greater than 4.19 but smaller than 5.10 might be fine as well

The issue somehow seems to be related to the soft retry mechanism implemented for xHCI controllers.

Note
If you can provide more details regarding this please let us know!

Resolution

Update to a Linux kernel or 5.10 or above!