SYNC_IOC_FENCE_INFO ioctl failed when encoding 10bit h265 video

Hi there,

I’m using gstreamer to encode 10bit hevc videos on the AGX Xavier (Jetpack 4.5.1).
My pipeline looks something like this:

appsrc --[video/x-raw P010_10LE]-> nvvidconv --[video/x-raw(memory:NVMM) P010_10LE]->
nvv4l2h265enc -> h265parse -> matroskamux -> filesink

This runs fine and recorded a couple hundred videos until an “Internal data stream error” occured, here’s the terminal output:

Writing case file to: /mnt/ssd/measurements/2/case000375
Opening in BLOCKING MODE
Opening in BLOCKING MODE 
Opening in BLOCKING MODE
Opening in BLOCKING MODE 
NvMMLiteOpen : Block : BlockType = 8 
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 8 
NvMMLiteOpen : Block : BlockType = 8 
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 8 
NVMEDIA: H265 : Profile : 2 
NVMEDIA: H265 : Profile : 2 
SYNC_IOC_FENCE_INFO ioctl failed with 9
NvDdkVicExecute Failed
nvbuffer_transform Failed
gst_nvvconv_transform: NvBufferTransform Failed 
E0728 20:49:50.155305  2750 Gst10bitMonoRecorder.cpp:23] Gstreamer Error: Internal data stream error. //This is from a callback function called by the bus watch using gst_message_parse_error()
SYNC_IOC_FENCE_INFO ioctl failed with 9
NvDdkVicExecute Failed
nvbuffer_transform Failed
gst_nvvconv_transform: NvBufferTransform Failed 
E0728 20:49:50.159631  2750 Gst10bitMonoRecorder.cpp:23] Gstreamer Error: Internal data stream error.
Opening channel /dev/nvhost-nvenc1 failed
NVENC_TVMR: Channel open failed
double free or corruption (out)
SYNC_IOC_FENCE_INFO ioctl failed with 9
NvDdkVicExecute Failed
nvbuffer_transform Failed
gst_nvvconv_transform: NvBufferTransform Failed 
NvDdkVicExecute Failed
nvbuffer_transform Failed
gst_nvvconv_transform: NvBufferTransform Failed 
Aborted (core dumped)

Note that a lot of the logs are doubled because it’s a stereo footage I’m trying to record using two gst pipelines.
It looks like the SYNC_IOC_FENCE_INFO call received a bad file descriptor and ultimately crashed the program.

also the backtrace:

#0  0x0000007f79d4c598 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x0000007f79d4d94c in __GI_abort () at abort.c:100
#2  0x0000007f79d8672c in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f79e477e0 "%s\n")
    at ../sysdeps/posix/libc_fatal.c:181
#3  0x0000007f79d8caa4 in malloc_printerr (str=str@entry=0x7f79e434b8 "double free or corruption (out)") at malloc.c:5342
#4  0x0000007f79d8e704 in _int_free (av=0x7f79e6da70 <main_arena>, p=0x7e9c4f3220, have_lock=<optimised out>) at malloc.c:4308
#5  0x0000007f77b20aa4 in  () at /usr/lib/aarch64-linux-gnu/tegra/libnvtvmr.so
#6  0x0000007f77c0af3c in NvMediaIEPCreate () at /usr/lib/aarch64-linux-gnu/tegra/libnvmedia.so
#7  0x0000007f5c1e1854 in  () at /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_video.so
#8  0x0000007f5c1a5114 in NvMMLiteBlockDoWork () at /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_utils.so
#9  0x0000007f5c1b79f0 in  () at /usr/lib/aarch64-linux-gnu/tegra/libnvmmlite.so
#10 0x0000007f5c221098 in  () at /usr/lib/aarch64-linux-gnu/tegra/libtegrav4l2.so
#11 0x0000007f5c228840 in  () at /usr/lib/aarch64-linux-gnu/tegra/libtegrav4l2.so
#12 0x0000007f77ad0628 in  () at /usr/lib/aarch64-linux-gnu/tegra/libnvos.so
#13 0x0000007f81af8088 in start_thread (arg=0x7df03cb34f) at pthread_create.c:463
#14 0x0000007f79dea0cc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78

Can someone help me out with this?

Cheers

Hi,
We would need to reproduce the issue first and debug further. Please check which method can reproduce issue:

  1. Run the gst-launch-1.0 command overnight:
$ gst-launch-1.0 videotestsrc is-live=1 ! video/x-raw,width=1920,height=1080,format=P010_10LE ! nvvidconv ! 'video/x-raw(memory:NVMM),format=P010_10LE' ! nvv4l2h265enc ! fakesink
  1. Apply this pipeline to the sample to run loop test:
videotestsrc is-live=1 ! video/x-raw,width=1920,height=1080,format=P010_10LE ! nvvidconv ! 'video/x-raw(memory:NVMM),format=P010_10LE' ! nvv4l2h265enc ! fakesink

These are two use-cases. Please check and confirm which one is close to your use-case, and can be run to reproduce the issue. So that we can set up and try.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.