V4L2VideoCaptureOp not working with custom operator Couldn’t create autoTSSkey mapping

I want to use V4L2VideoCaptureOp in an app with custom operators but as soon as I try to send it the data I have the error “Couldn’t create autoTSSkey mapping” just after calling the operator.

I can use the V4L2VideoCaptureOp operator with Holoviz directly, I can also use it by sending it to a formatConverter operator and then Holoviz.

V4L2VideoCaptureOp → Holoviz = Ok
V4L2VideoCaptureOp → FormatConverter -->Holoviz = Ok
V4L2VideoCaptureOp → sink = fail
V4L2VideoCaptureOp → FormatConverter → sink = fail

the error is
[2024-05-28 16:35:58.691] [183221] [holoscan] [trace] [gxf_wrapper.cpp:66] GXFWrapper::tick()
[2024-05-28 16:35:58.691] [183221] [holoscan] [trace] [gxf_wrapper.cpp:72] Calling operator: customSink
Fatal Python error: _PyGILState_NoteThreadState: Couldn’t create autoTSSkey mapping
Python runtime state: initialized

Thread 0x0000fffea42be120 (most recent call first):
File “/usr/lib/python3.10/concurrent/futures/thread.py”, line 58 in run
File “/usr/lib/python3.10/concurrent/futures/thread.py”, line 83 in _worker
File “/usr/lib/python3.10/threading.py”, line 953 in run
File “/usr/lib/python3.10/threading.py”, line 1016 in _bootstrap_inner
File “/usr/lib/python3.10/threading.py”, line 973 in _bootstrap

Thread 0x0000ffff8a02c4c0 (most recent call first):
File “/usr/lib/python3.10/threading.py”, line 1116 in _wait_for_tstate_lock
File “/usr/lib/python3.10/threading.py”, line 1096 in join
File “/usr/lib/python3.10/concurrent/futures/thread.py”, line 31 in _python_exit
File “/usr/lib/python3.10/threading.py”, line 1537 in _shutdown
Aborted (core dumped)

Has anyone encounter this before ? Any solution ?

1 Like

Could anyone assist with this issue? I’m experiencing it as well.

I can not reproduce this behavior.
See my attempt here: holohub/applications/v4l2_test/v4l2_test.py at v4l2_test · maximilianofir/holohub · GitHub

Could you share a minimal reproducible sample?
It looks like a threading issue, which makes it difficult to debug without your code. Thank you

Dear Mofir
Thank you for your feedback. I will try to run the v4l2_test and update you on the results.

Currently, I’m running the [body_pose_estimation] project and encountering an error. Previously, when I used the OS (IGX-SW 1.0 Developer Preview) in June 2024, it worked fine. However, after updating to the OS (IGX-SW 1.0 Production Release), I started experiencing the error.


Update
Development-Kit:~/applications/v4l2_test# python v4l2_test.py
[info] [fragment.cpp:569] Loading extensions from configs…
[info] [gxf_executor.cpp:249] [v4l2 test App] Creating context
[info] [codec_registry.hpp:314] Replacing existing codec with name ‘std::vectorholoscan::ops::HolovizOp::InputSpec’.
[info] [gxf_executor.cpp:1912] Activating Graph…
[info] [gxf_executor.cpp:1944] [v4l2 test App] Running Graph…
[info] [gxf_executor.cpp:1946] [v4l2 test App] Waiting for completion…
2024-08-06 06:21:41.217 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 6 entities
Opening in BLOCKING MODE
Fatal Python error: _PyGILState_NoteThreadState: Couldn’t create autoTSSkey mapping
Python runtime state: initialized

Thread 0x0000ffffa6e9f6c0 (most recent call first):
File “/workspace/holohub/applications/v4l2_test/v4l2_test.py”, line 160 in
Aborted (core dumped)