Dear Maintainer,
When using epiphany-browser to access a web page that contains HTML5
video content, the browser crashes with a SIGSEGV.
Example of web page that crashes the browser is youtube, or an html5
video test page such as https://tekeye.uk/html/html5-video-test-page
This involves VA-API, I am not sure exactly where the root cause lies
but since the issue is manifesting while using epiphany-browser
specifically, I thought I would start by opening a bug here.
I also noticed that, while I have 2 devices running bullseye with
identical HW and both systems up to date, only one of the 2 device has
the issue. Those are Purism Librem 14 laptops, shipping an Intel UHD
Graphics 620 chip.
To be able to troubleshoot further the issue, I installed the following
debug symbols:
ii epiphany-browser-dbgsym 3.38.2-1 amd64 debug symbols for epiphany-browser
ii gstreamer1.0-vaapi-dbgsym:amd64 1.18.4-2 amd64 debug symbols for gstreamer1.0-vaapi
ii intel-media-va-driver-dbgsym:amd64 21.1.1+dfsg1-1 amd64 debug symbols for intel-media-va-driver
ii libdrm-intel1-dbgsym:amd64 2.4.104-1 amd64 debug symbols for libdrm-intel1
ii libva-wayland2-dbgsym:amd64 2.10.0-1 amd64 debug symbols for libva-wayland2
ii libwayland-server0-dbgsym:amd64 1.18.0-2~exp1.1 amd64 debug symbols for libwayland-server0
Note: I couldn't install dbgsym for libwebkit2gtk-4.0-37 since it is
installed from stable-security
VA-API related packages installed:
root@belap02:/tmp# dpkg -l | grep VA
ii gstreamer1.0-vaapi:amd64 1.18.4-2 amd64 VA-API plugins for GStreamer
ii intel-media-va-driver:amd64 21.1.1+dfsg1-1 amd64 VAAPI driver for the Intel GEN8+ Graphics family
ii libva-drm2:amd64 2.10.0-1 amd64 Video Acceleration (VA) API for Linux -- DRM runtime
ii libva-glx2:amd64 2.10.0-1 amd64 Video Acceleration (VA) API for Linux -- GLX runtime
ii libva-wayland2:amd64 2.10.0-1 amd64 Video Acceleration (VA) API for Linux -- Wayland runtime
ii libva-x11-2:amd64 2.10.0-1 amd64 Video Acceleration (VA) API for Linux -- X11 runtime
ii libva2:amd64 2.10.0-1 amd64 Video Acceleration (VA) API for Linux -- runtime
ii vainfo 2.10.0+ds1-1 amd64 Video Acceleration (VA) API for Linux -- info program
A backtrace access using coredumpctl:
(gdb) bt
#0 KernelDll_AllocateStates (pKernelBin=pKernelBin@entry=0x7f30c00a32b0, uKernelSize=0, pFcPatchCache=pFcPatchCache@entry=0x0, uFcPatchCacheSize=<optimized out>, pDefaultRules=0x0, ModifyFunctionPointers=0x0)
at ./media_driver/agnostic/common/vp/kdll/hal_kerneldll.c:3350
#1 0x00007f30c69fafdb in VphalRenderer::Initialize (this=0x7f30c00e5570, pSettings=0x7f30c7ffd9b0, isApoEnabled=<optimized out>) at ./media_driver/agnostic/common/vp/hal/vphal_renderer.cpp:1414
#2 0x00007f30c69e1e15 in VphalState::Allocate (pVpHalSettings=0x7f30c7ffd9b0, this=0x7f30c009fc60) at ./media_driver/agnostic/common/vp/hal/vphal.cpp:146
#3 VphalState::Allocate (this=0x7f30c009fc60, pVpHalSettings=0x7f30c7ffd9b0) at ./media_driver/agnostic/common/vp/hal/vphal.cpp:75
#4 0x00007f30c6be5105 in DdiVp_InitVpHal (pVpCtx=0x7f30c0081bb0) at ./media_driver/linux/common/vp/ddi/media_libva_vp.c:1800
#5 0x00007f30c6be959f in DdiVp_InitCtx (pVaDrvCtx=<optimized out>, pVpCtx=0x7f30c0081bb0) at ./media_driver/linux/common/vp/ddi/media_libva_vp.c:1660
#6 0x00007f30c6be999e in DdiVp_CreateContext (pVaDrvCtx=pVaDrvCtx@entry=0x7f30c003e5c0, vaConfigID=vaConfigID@entry=0, iWidth=iWidth@entry=0, iHeight=iHeight@entry=0, iFlag=iFlag@entry=0,
vaSurfIDs=vaSurfIDs@entry=0x0, iNumSurfs=0, pVaCtxID=0x7f30c7ffdcdc) at ./media_driver/linux/common/vp/ddi/media_libva_vp.c:3109
#7 0x00007f30c6bb0be2 in DdiMedia_PutImage (ctx=0x7f30c003e5c0, surface=0, image=<optimized out>, src_x=0, src_y=0, src_width=64, src_height=64, dest_x=0, dest_y=0, dest_width=64, dest_height=64)
at ./media_driver/linux/common/ddi/media_libva.cpp:5407
#8 0x00007f312650717c in vaPutImage () from /lib/x86_64-linux-gnu/libva.so.2
#9 0x00007f3126188b7c in gst_vaapi_surface_put_image (surface=surface@entry=0x7f30c0026d00, image=image@entry=0x55f944026770) at ../gst-libs/gst/vaapi/gstvaapisurface.c:761
#10 0x00007f3126147476 in extract_allowed_surface_formats (img_formats=0x7f30c002d6c0, display=0x7f310803de10) at ../gst/vaapi/gstvaapipluginbase.c:1451
#11 ensure_allowed_raw_caps (plugin=0x7f30c002f370) at ../gst/vaapi/gstvaapipluginbase.c:1483
#12 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps (plugin=plugin@entry=0x7f30c002f370) at ../gst/vaapi/gstvaapipluginbase.c:1515
#13 0x00007f312614e6ce in ensure_allowed_sinkpad_caps (postproc=0x7f30c002f370) at ../gst/vaapi/gstvaapipostproc.c:1312
#14 gst_vaapipostproc_transform_caps_impl (direction=<optimized out>, trans=0x7f30c002f370) at ../gst/vaapi/gstvaapipostproc.c:1422
#15 gst_vaapipostproc_transform_caps (trans=0x7f30c002f370, direction=<optimized out>, caps=0x7f30c0048ad0, filter=0x0) at ../gst/vaapi/gstvaapipostproc.c:1445
#16 0x00007f31a80b44b3 in ?? () from /lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#17 0x00007f31a80b7e6d in ?? () from /lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#18 0x00007f31a7faee58 in gst_pad_query () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#19 0x00007f31a7faf5bb in gst_pad_peer_query () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#20 0x00007f31a7fee648 in gst_pad_peer_query_caps () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#21 0x00007f31a80b8064 in ?? () from /lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#22 0x00007f31a7faee58 in gst_pad_query () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#23 0x00007f31a7febdd8 in gst_pad_query_caps () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#24 0x00007f31a7fa58e7 in ?? () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#25 0x00007f31a7fb1a7d in gst_pad_link_full () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#26 0x00007f3126156c7a in gst_vaapi_decode_bin_configure (vaapidecbin=0x7f30c0023110) at ../gst/vaapi/gstvaapidecodebin.c:351
#27 gst_vaapi_decode_bin_change_state (element=<optimized out>, transition=<optimized out>) at ../gst/vaapi/gstvaapidecodebin.c:223
#28 0x00007f31a7f8c34e in gst_element_change_state () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#29 0x00007f31a7f8ca8d in ?? () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#30 0x00007f31a7f8c1e3 in gst_element_sync_state_with_parent () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#31 0x00007f3150121c91 in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so
#32 0x00007f315012265f in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstplayback.so
#33 0x00007f31a7fa4eee in ?? () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#34 0x00007f31aab7f6b6 in g_hook_list_marshal () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007f31a7fa45d9 in ?? () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#36 0x00007f31a7fa7db5 in ?? () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#37 0x00007f31a7fa8344 in ?? () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#38 0x00007f31a7fa5ca0 in ?? () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#39 0x00007f31a7fb1160 in gst_pad_push_event () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#40 0x00007f31501c4af8 in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so
#41 0x00007f31a7fdf73f in ?? () from /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#42 0x00007f31aabb99a4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007f31aabb90bd in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007f31a6eb8ea7 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#45 0x00007f31ab09bdef in clone () from /lib/x86_64-linux-gnu/libc.so.6
Some vainfo output:
libva info: VA-API version 1.10.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.10 (libva 2.10.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.1.1 ()
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD