[Bug 785085] multiple vaapi encoding pipelines on radeonsi segfault
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sat Jul 22 14:58:52 UTC 2017
https://bugzilla.gnome.org/show_bug.cgi?id=785085
--- Comment #11 from Tomas Rataj <rataj28 at gmail.com> ---
Thank you guys. Problem with picture_id is gone but there might be still
something wrong. With the original pipeline I am getting invalid read here:
https://cgit.freedesktop.org/gstreamer/gstreamer-vaapi/tree/gst-libs/gst/vaapi/gstvaapidisplay.c#n272
Which might be related to the fact that the hw is supporting NV12 only.
0:00:13.324039431 802 0x189023e0 ERROR vaapivideomemory
gstvaapivideomemory.c:736:gst_video_info_update_from_surface: Cannot create a
VA derived image from surface 0x19603570
==802== Thread 10 videotestsrc0:sr:
==802== Invalid read of size 4
==802== at 0xADACD31: append_formats (gstvaapidisplay.c:272)
==802== by 0xADACEFF: ensure_image_formats (gstvaapidisplay.c:721)
==802== by 0xADAE4EB: gst_vaapi_display_has_image_format
(gstvaapidisplay.c:1573)
==802== by 0xADB23CF: _gst_vaapi_image_create (gstvaapiimage.c:138)
==802== by 0xADB2C48: gst_vaapi_image_create (gstvaapiimage.c:169)
==802== by 0xADB2C48: gst_vaapi_image_new (gstvaapiimage.c:257)
==802== by 0xAD9443D: new_image (gstvaapivideomemory.c:118)
==802== by 0xAD9443D: allocator_configure_image_info
(gstvaapivideomemory.c:829)
==802== by 0xAD9443D: allocator_params_init (gstvaapivideomemory.c:871)
==802== by 0xAD9443D: gst_vaapi_video_allocator_new
(gstvaapivideomemory.c:910)
==802== by 0xAD84860: ensure_sinkpad_allocator (gstvaapipluginbase.c:524)
==802== by 0xAD84860: ensure_sinkpad_buffer_pool (gstvaapipluginbase.c:783)
==802== by 0xAD84AC5: gst_vaapi_plugin_base_set_caps
(gstvaapipluginbase.c:834)
==802== by 0xAD96410: gst_vaapiencode_set_format (gstvaapiencode.c:566)
==802== by 0x8293E15: gst_video_encoder_setcaps (gstvideoencoder.c:594)
==802== by 0x8293E15: gst_video_encoder_sink_event_default
(gstvideoencoder.c:946)
==802== by 0xAD952D7: gst_vaapiencode_sink_event (gstvaapiencode.c:781)
==802== by 0x5559C76: gst_pad_send_event_unchecked (gstpad.c:5608)
==802== Address 0x196068f4 is 20 bytes inside a block of size 32 free'd
==802== at 0x4C2DDCF: realloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==802== by 0x5AA60E7: g_realloc (gmem.c:159)
==802== by 0x5A73908: g_array_maybe_expand (garray.c:788)
==802== by 0x5A73C9C: g_array_append_vals (garray.c:421)
==802== by 0xADACC8D: append_format (gstvaapidisplay.c:229)
==802== by 0xADACC8D: append_formats (gstvaapidisplay.c:252)
==802== by 0xADACEFF: ensure_image_formats (gstvaapidisplay.c:721)
==802== by 0xADAE4EB: gst_vaapi_display_has_image_format
(gstvaapidisplay.c:1573)
==802== by 0xADB23CF: _gst_vaapi_image_create (gstvaapiimage.c:138)
==802== by 0xADB2C48: gst_vaapi_image_create (gstvaapiimage.c:169)
==802== by 0xADB2C48: gst_vaapi_image_new (gstvaapiimage.c:257)
==802== by 0xAD9443D: new_image (gstvaapivideomemory.c:118)
==802== by 0xAD9443D: allocator_configure_image_info
(gstvaapivideomemory.c:829)
==802== by 0xAD9443D: allocator_params_init (gstvaapivideomemory.c:871)
==802== by 0xAD9443D: gst_vaapi_video_allocator_new
(gstvaapivideomemory.c:910)
==802== by 0xAD84860: ensure_sinkpad_allocator (gstvaapipluginbase.c:524)
==802== by 0xAD84860: ensure_sinkpad_buffer_pool (gstvaapipluginbase.c:783)
==802== by 0xAD84AC5: gst_vaapi_plugin_base_set_caps
(gstvaapipluginbase.c:834)
==802== Block was alloc'd at
==802== at 0x4C2DDCF: realloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==802== by 0x5AA60E7: g_realloc (gmem.c:159)
==802== by 0x5A73908: g_array_maybe_expand (garray.c:788)
==802== by 0x5A73C9C: g_array_append_vals (garray.c:421)
==802== by 0xADACC8D: append_format (gstvaapidisplay.c:229)
==802== by 0xADACC8D: append_formats (gstvaapidisplay.c:252)
==802== by 0xADACEFF: ensure_image_formats (gstvaapidisplay.c:721)
==802== by 0xADAE4EB: gst_vaapi_display_has_image_format
(gstvaapidisplay.c:1573)
==802== by 0xADB23CF: _gst_vaapi_image_create (gstvaapiimage.c:138)
==802== by 0xADB2C48: gst_vaapi_image_create (gstvaapiimage.c:169)
==802== by 0xADB2C48: gst_vaapi_image_new (gstvaapiimage.c:257)
==802== by 0xAD9443D: new_image (gstvaapivideomemory.c:118)
==802== by 0xAD9443D: allocator_configure_image_info
(gstvaapivideomemory.c:829)
==802== by 0xAD9443D: allocator_params_init (gstvaapivideomemory.c:871)
==802== by 0xAD9443D: gst_vaapi_video_allocator_new
(gstvaapivideomemory.c:910)
==802== by 0xAD84860: ensure_sinkpad_allocator (gstvaapipluginbase.c:524)
==802== by 0xAD84860: ensure_sinkpad_buffer_pool (gstvaapipluginbase.c:783)
==802== by 0xAD84AC5: gst_vaapi_plugin_base_set_caps
(gstvaapipluginbase.c:834)
Another weird thing is that running the app under valgrind always ends with
SIGBUS.
==2999== Process terminating with default action of signal 7 (SIGBUS)
==2999== Non-existent physical address at address 0x333EE000
==2999== at 0x4C30143: memcpy at GLIBC_2.2.5 (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==2999== by 0xF07D0E9: util_copy_rect (u_surface.c:105)
==2999== by 0xF07D267: util_copy_box (u_surface.c:131)
==2999== by 0xF081FFE: u_default_texture_subdata (u_transfer.c:67)
==2999== by 0xF004321: vlVaPutImage (image.c:557)
==2999== by 0xADB65FB: gst_vaapi_surface_put_image (gstvaapisurface.c:741)
==2999== by 0xAD92712: ensure_surface_is_current.part.2
(gstvaapivideomemory.c:228)
==2999== by 0xAD8FED4: gst_vaapi_video_meta_get_surface_proxy
(gstvaapivideometa.c:559)
==2999== by 0xAD95ECA: gst_vaapiencode_handle_frame (gstvaapiencode.c:634)
==2999== by 0x8294C1E: gst_video_encoder_chain (gstvideoencoder.c:1438)
==2999== by 0x555AF91: gst_pad_chain_data_unchecked (gstpad.c:4205)
==2999== by 0x555AF91: gst_pad_push_data (gstpad.c:4457)
==2999== by 0x5563421: gst_pad_push (gstpad.c:4576)
With following messages in dmesg:
[ 359.907512] radeon 0000:00:01.0: ring 0 stalled for more than 10256msec
[ 359.907578] radeon 0000:00:01.0: GPU lockup (current fence id
0x0000000000000ea7 last fence id 0x0000000000000eaa on ring 0)
[ 360.414134] [TTM] Buffer eviction failed
[ 638.166189] radeon 0000:00:01.0: Syncing to a disabled ring!
[ 638.166218] radeon 0000:00:01.0: failed to sync rings (-22)
[ 639.562933] radeon 0000:00:01.0: couldn't schedule ib
[ 639.562994] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to schedule IB !
[ 639.563312] radeon 0000:00:01.0: couldn't schedule ib
I have to say that I was not able to crash it without valgrid. Is it something
to be worry about? Thanks
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list