va: AV1 decoder crash with conformance test av1-1-b8-22-svc-L2T2/av1-1-b8-22-svc-L2T2.ivf
This was notice running fluster on Aderlake platform.
Some VA info:
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.14.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 ()
vainfo: Supported profile and entrypoints
GStreamer command:
gdb --args gst-launch-1.0 filesrc location=resources/AV1-TEST-VECTORS/av1-1-b8-22-svc-L2T2/av1-1-b8-22-svc-L2T2.ivf ! ivfparse ! av1parse ! vaav1dec ! video/x-raw ! videoconvert dither=none ! video/x-raw,format=I420 ! videocodectestsink location=results/AV1-TEST-VECTORS/av1-1-b8-22-svc-L2T2.out
And the backtrace:
Thread 4 "ivfparse0:sink" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe6400640 (LWP 62646)]
0x00007fffe82667d7 in DdiDecode_StatusReport(DDI_MEDIA_CONTEXT*, DecodePipelineAdapter*, _DDI_MEDIA_SURFACE*) [clone .constprop.0] () from /usr/lib64/dri/iHD_drv_video.so
Missing separate debuginfos, use: dnf debuginfo-install intel-media-driver-22.3.1-1.fc36.2.x86_64
(gdb) bt
#0 0x00007fffe82667d7 in DdiDecode_StatusReport(DDI_MEDIA_CONTEXT*, DecodePipelineAdapter*, _DDI_MEDIA_SURFACE*) [clone .constprop.0] () at /usr/lib64/dri/iHD_drv_video.so
#1 0x00007fffe815d9c6 in DdiMedia_StatusCheck(DDI_MEDIA_CONTEXT*, _DDI_MEDIA_SURFACE*, unsigned int) ()
at /usr/lib64/dri/iHD_drv_video.so
#2 0x00007fffe816328b in DdiMedia_SyncSurface(VADriverContext*, unsigned int) ()
at /usr/lib64/dri/iHD_drv_video.so
#3 0x00007fffe9c93a97 in vaSyncSurface (dpy=0x7e2800, render_target=render_target@entry=22)
at /usr/src/debug/libva-2.14.0-1.fc36.x86_64/va/va.c:1642
#4 0x00007fffe9cd4742 in va_sync_surface (display=display@entry=0x6ceba0, surface=surface@entry=22)
at ../subprojects/gst-plugins-bad/gst-libs/gst/va/vasurfaceimage.c:203
#5 0x00007fffe9cd499b in va_ensure_image
(display=display@entry=0x6ceba0, surface=22, info=info@entry=0x7fffdc24e840, image=image@entry=0x7fffdc74f608, derived=derived@entry=0) at ../subprojects/gst-plugins-bad/gst-libs/gst/va/vasurfaceimage.c:266
#6 0x00007fffe9ccebbe in _va_map_unlocked (flags=(GST_MAP_READ | GST_MAP_FLAG_LAST), mem=0x7fffdc74f590)
at ../subprojects/gst-plugins-bad/gst-libs/gst/va/gstvaallocator.c:1200
#7 _va_map (mem=0x7fffdc74f590, maxsize=<optimized out>, flags=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gst-plugins-bad/gst-libs/gst/va/gstvaallocator.c:1234
#8 0x00007ffff7ef2315 in gst_memory_map
(mem=mem@entry=0x7fffdc74f590, info=info@entry=0x7fffe63fe178, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST)) at ../subprojects/gstreamer/gst/gstmemory.c:308
#9 0x00007ffff7ef2807 in gst_memory_make_mapped
(mem=mem@entry=0x7fffdc74f590, info=info@entry=0x7fffe63fe178, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST)) at ../subprojects/gstreamer/gst/gstmemory.c:241
#10 0x00007ffff7ebd507 in gst_buffer_map_range
(buffer=buffer@entry=0x7fffdc013480, idx=0, length=1, info=info@entry=0x7fffe63fe178, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST)) at ../subprojects/gstreamer/gst/gstbuffer.c:1855
#11 0x00007fffe9f019c0 in default_map
(meta=0x7fffdc032a90, plane=0, info=0x7fffe63fe178, data=0x7fffe63fe158, stride=0x7fffe63fe108, flags=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideometa.c:231
#12 0x00007fffe9f2f646 in gst_video_frame_map_id
(frame=frame@entry=0x7fffe63fe0a0, info=info@entry=0x6e63e8, buffer=0x7fffdc013480, id=id@entry=-1, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-frame.c:104
#13 0x00007fffe9f2f8dd in gst_video_frame_map
(frame=frame@entry=0x7fffe63fe0a0, info=info@entry=0x6e63e8, buffer=<optimized out>, flags=flags@entry=(GST_MAP_READ | GST_MAP_FLAG_LAST))
at ../subprojects/gst-plugins-base/gst-libs/gst/video/video-frame.c:246
#14 0x00007fffe9f00d24 in gst_video_filter_transform
(trans=0x6e61a0, inbuf=<optimized out>, outbuf=0x7fffdc013c60)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideofilter.c:267
#15 0x00007fffea0d4e33 in default_generate_output (trans=0x6e61a0, outbuf=0x7fffe63fe678)
at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2192
#16 0x00007fffea0d458f in gst_base_transform_chain
(pad=<optimized out>, parent=0x6e61a0, buffer=<optimized out>)
at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2345
#17 0x00007ffff7ef6b78 in gst_pad_chain_data_unchecked
--Type <RET> for more, q to quit, c to continue without paging--
(pad=pad@entry=0x6a90a0, type=type@entry=4112, data=data@entry=0x7fffdc013480)
at ../subprojects/gstreamer/gst/gstpad.c:4444
#18 0x00007ffff7ef8d21 in gst_pad_push_data
(pad=pad@entry=0x6a99e0, type=type@entry=4112, data=data@entry=0x7fffdc013480)
at ../subprojects/gstreamer/gst/gstpad.c:4708
#19 0x00007ffff7effe7b in gst_pad_push (pad=0x6a99e0, buffer=0x7fffdc013480)
at ../subprojects/gstreamer/gst/gstpad.c:4827
#20 0x00007fffea0d466a in gst_base_transform_chain
(pad=<optimized out>, parent=0x75e330, buffer=<optimized out>)
at ../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2381
#21 0x00007ffff7ef6b78 in gst_pad_chain_data_unchecked
(pad=pad@entry=0x6a9790, type=type@entry=4112, data=data@entry=0x7fffdc013480)
at ../subprojects/gstreamer/gst/gstpad.c:4444
#22 0x00007ffff7ef8d21 in gst_pad_push_data
(pad=pad@entry=0x6a8e50, type=type@entry=4112, data=data@entry=0x7fffdc013480)
at ../subprojects/gstreamer/gst/gstpad.c:4708
#23 0x00007ffff7effe7b in gst_pad_push (pad=0x6a8e50, buffer=buffer@entry=0x7fffdc013480)
at ../subprojects/gstreamer/gst/gstpad.c:4827
#24 0x00007fffe9eee376 in gst_video_decoder_clip_and_push_buf
(decoder=decoder@entry=0x7514e0, buf=buf@entry=0x7fffdc013480)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3730
#25 0x00007fffe9ef2d33 in gst_video_decoder_finish_frame (decoder=0x7514e0, frame=0x0)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3548
#26 0x00007fffe9cf5a3a in gst_av1_decoder_drain_output_queue
(self=self@entry=0x7514e0, num=0, ret=ret@entry=0x7fffe63feb44)
at ../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.c:240
#27 0x00007fffe9cf5f2d in gst_av1_decoder_handle_frame (decoder=0x7514e0, frame=0x7fffdc74f6a0)
at ../subprojects/gst-plugins-bad/gst-libs/gst/codecs/gstav1decoder.c:734
#28 0x00007fffe9ef5032 in gst_video_decoder_decode_frame
(decoder=decoder@entry=0x7514e0, frame=frame@entry=0x7fffdc74f6a0)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:4004
#29 0x00007fffe9ef54af in gst_video_decoder_chain_forward
(decoder=decoder@entry=0x7514e0, buf=buf@entry=0x7fffdc013a20, at_eos=at_eos@entry=0)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2490
#30 0x00007fffe9ef819f in gst_video_decoder_chain
(pad=<optimized out>, parent=<optimized out>, buf=0x7fffdc013a20)
at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2832
#31 0x00007ffff7ef6b78 in gst_pad_chain_data_unchecked
(pad=pad@entry=0x6a8c00, type=type@entry=4112, data=data@entry=0x7fffdc013a20)
at ../subprojects/gstreamer/gst/gstpad.c:4444
#32 0x00007ffff7ef8d21 in gst_pad_push_data
(pad=pad@entry=0x6a89b0, type=type@entry=4112, data=data@entry=0x7fffdc013a20)
at ../subprojects/gstreamer/gst/gstpad.c:4708
#33 0x00007ffff7effe7b in gst_pad_push (pad=0x6a89b0, buffer=buffer@entry=0x7fffdc013a20)
at ../subprojects/gstreamer/gst/gstpad.c:4827
#34 0x00007fffea0b4fc8 in gst_base_parse_push_frame (parse=0x6b8750, frame=frame@entry=0x7fffdc757850)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2594
--Type <RET> for more, q to quit, c to continue without paging--
#35 0x00007fffea0b7eaf in gst_base_parse_handle_and_push_frame
(frame=0x7fffdc757850, parse=<optimized out>)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2445
#36 0x00007fffea073a8d in gst_av1_parse_push_data
(self=self@entry=0x6b8750, frame=frame@entry=0x7fffdc757850, finish_sz=finish_sz@entry=1290, frame_finished=frame_finished@entry=1) at ../subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c:993
#37 0x00007fffea075a5d in gst_av1_parse_handle_to_small_and_equal_align
(skipsize=0x7fffe63ff90c, frame=0x7fffdc757850, parse=0x6b8750)
at ../subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c:1652
#38 gst_av1_parse_handle_frame (parse=0x6b8750, frame=0x7fffdc757850, skipsize=0x7fffe63ff90c)
at ../subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c:2001
#39 0x00007fffea0afe24 in gst_base_parse_handle_buffer
(parse=parse@entry=0x6b8750, buffer=<optimized out>, skip=skip@entry=0x7fffe63ff90c, flushed=flushed@entry=0x7fffe63ff910) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2253
#40 0x00007fffea0b5c5d in gst_base_parse_chain
(pad=<optimized out>, parent=<optimized out>, buffer=<optimized out>)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:3302
#41 0x00007ffff7ef6b78 in gst_pad_chain_data_unchecked
(pad=pad@entry=0x6a8760, type=type@entry=4112, data=data@entry=0x7fffdc258900)
at ../subprojects/gstreamer/gst/gstpad.c:4444
#42 0x00007ffff7ef8d21 in gst_pad_push_data
(pad=pad@entry=0x6a8510, type=type@entry=4112, data=data@entry=0x7fffdc258900)
at ../subprojects/gstreamer/gst/gstpad.c:4708
#43 0x00007ffff7effe7b in gst_pad_push (pad=0x6a8510, buffer=buffer@entry=0x7fffdc258900)
at ../subprojects/gstreamer/gst/gstpad.c:4827
#44 0x00007fffea0b4fc8 in gst_base_parse_push_frame
(parse=parse@entry=0x6b5390, frame=frame@entry=0x7fffdc002400)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2594
#45 0x00007fffea0b7eaf in gst_base_parse_handle_and_push_frame (frame=0x7fffdc002400, parse=0x6b5390)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2445
#46 0x00007ffff7e66854 in gst_ivf_parse_handle_frame_data
(skipsize=0x7fffe63ffce4, frame=0x7fffdc002400, ivf=0x6b5390)
at ../subprojects/gst-plugins-bad/gst/ivfparse/gstivfparse.c:374
#47 gst_ivf_parse_handle_frame (parse=<optimized out>, frame=0x7fffdc002400, skipsize=0x7fffe63ffce4)
at ../subprojects/gst-plugins-bad/gst/ivfparse/gstivfparse.c:397
#48 0x00007fffea0afe24 in gst_base_parse_handle_buffer
(parse=parse@entry=0x6b5390, buffer=buffer@entry=0x7fffdc016000, skip=skip@entry=0x7fffe63ffce4, flushed=flushed@entry=0x7fffe63ffce0) at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2253
#49 0x00007fffea0b0667 in gst_base_parse_scan_frame
(parse=parse@entry=0x6b5390, klass=klass@entry=0x6a5a60)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:3533
#50 0x00007fffea0b3a5e in gst_base_parse_loop (pad=<optimized out>)
at ../subprojects/gstreamer/libs/gst/base/gstbaseparse.c:3613
#51 0x00007ffff7f2de61 in gst_task_func (task=0x6aa710) at ../subprojects/gstreamer/gst/gsttask.c:384
#52 0x00007ffff7da2d02 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
#53 0x00007ffff7da0302 in g_thread_proxy (data=0x7fffd80071e0) at ../glib/gthread.c:827
#54 0x00007ffff7b4be1d in start_thread (arg=<optimized out>) at pthread_create.c:442
--Type <RET> for more, q to quit, c to continue without paging--
#55 0x00007ffff7bd15e0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81