Help needed to diagnose ARV_BUFFER_STATUS_SIZE_MISMATCH

Hello,

I’m trying to diagnose a ARV_BUFFER_STATUS_SIZE_MISMATCH that appears in a, for the moment, unknown circumstance.

Background:

  • aravis: 0.8.30
  • Camera connection: USB3 async (unable to work in sync mode)
  • Target setup:
    • 2 cameras of the same model working in parallel with synchronized triggering
    • Host computer: Nvidia Jetson Orin (with a vendor carrier, not the devkit)

Issue:
Suddenly some buffers arrive with status ARV_BUFFER_STATUS_SIZE_MISMATCH, this happens on both cameras at the same time for a couple of frames.

Things that I’ve tried/tested:

  • Single camera: results in no issue (at least not observed in a reasonable time)
  • Different host computer:
    • Laptops (x64): I’ve tested with different laptops and got varying results, on some works without issue, on others the issue persists with different “frequencies” between errors
    • Raspberry Pi 5 (arm64): no issue (at least not observed in a reasonable time)
  • Increase thread priority / realtime
  • Separate processes for each camera / single process with both of them (feels like it gives less issues and less random on appearance)
  • Increase the aravis log level: reports “🆆 stream-thread> Unexpected total payload size (received XXXXXXX - expected 6410688)” with the received part changing almost always
  • Check that there are enough buffers available: when that buffer is received, there are always >1 buffers on the input queue
  • Check if when starts failing fails until reboot: the issue appears for a couple of frames and recovers itself, doesn’t have a “fixed” period neither on frames nor time between issues.
  • Check the dmesg / syslog: nothing obvious appears
  • Update the camera driver: no luck
  • Try newer aravis version: no luck either

Reproducible with:

# terminal 1
ARV_DEBUG=stream-thread:2 arv-camera-test-0.8 -n "<cam1>" --usb-mode=async -o 20 -e 500

# terminal 2
ARV_DEBUG=stream-thread:2 arv-camera-test-0.8 -n "<cam2>" --usb-mode=async -o 20 -e 500

At this point I could really use some help to debug / keep digging on the issue. Any ideas?

Thanks in advance.