After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 796926 - segfault when trying to postproc or decode on remote systems
segfault when trying to postproc or decode on remote systems
Status: RESOLVED INVALID
Product: GStreamer
Classification: Platform
Component: gstreamer-vaapi
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-08-07 10:44 UTC by Florent Thiéry
Modified: 2018-09-19 16:09 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Florent Thiéry 2018-08-07 10:44:12 UTC
$ gst-launch-1.0 videotestsrc ! vaapipostproc ! fakesink
Setting pipeline to PAUSED ...
0:00:00.038091895 28538 0x55f0f14a52f0 ERROR              gldisplay gstgldisplay_gbm.c:181:gst_gl_display_gbm_setup_drm: No connected DRM connector found
i965_dri.so does not support the 0xffffffff PCI ID.
Caught SIGSEGV
Spinning.  Please run 'gdb gst-launch-1.0 28538' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.

Note that it also happens on a remote, non-headless system (i.e. over ssh but with Xorg running):
$ gst-launch-1.0 filesrc location=/tmp/test ! h264parse ! vaapih264dec ! fakesink
Setting pipeline to PAUSED ...
i965_dri.so does not support the 0xffffffff PCI ID.
Caught SIGSEGV
Spinning.  Please run 'gdb gst-launch-1.0 1785' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.

It does not happen when running locally.

Discovered by trying to decode some samples (it does not matter if the file is here or not):
$ gst-launch-1.0 filesrc location=/tmp/sample.h264 ! h264parse ! vaapih264dec ! fakesink
Setting pipeline to PAUSED ...
0:00:00.037243094 27959 0x5561e37b7cd0 ERROR              gldisplay gstgldisplay_gbm.c:181:gst_gl_display_gbm_setup_drm: No connected DRM connector found
i965_dri.so does not support the 0xffffffff PCI ID.
Caught SIGSEGV
Spinning.  Please run 'gdb gst-launch-1.0 27959' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.

It crashes with all other decoders too. Interestingly, it does not if an encoder is present:

$ gst-launch-1.0 videotestsrc ! vaapih264enc ! vaapih264dec ! fakesink

NB: this is a regression, problem does not appear with 1.14.2

Trace:

  • #0 nanosleep
  • #1 g_usleep
  • #2 fault_spin
    at ../subprojects/gstreamer/tools/gst-launch.c line 113
  • #3 fault_handler_sighandler
    at ../subprojects/gstreamer/tools/gst-launch.c line 94
  • #4 <signal handler called>
  • #5 xcb_writev
  • #6 _XSend
  • #7 _XFlush
  • #8 _XGetRequest
  • #9 XQueryExtension
  • #10 XInitExtension
  • #11 XextAddDisplay
  • #12 0x00007f99616bdcc7 in
  • #13 XRRQueryExtension
  • #14 check_extensions
    at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapidisplay_x11.c line 118
  • #15 gst_vaapi_display_x11_bind_display
    at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapidisplay_x11.c line 138
  • #16 gst_vaapi_display_create
    at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapidisplay.c line 876
  • #17 gst_vaapi_display_config
    at ../subprojects/gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapidisplay.c line 1165
  • #18 gst_vaapi_create_display_from_handle
    at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapipluginutil.c line 259
  • #19 gst_vaapi_create_display_from_egl
    at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapipluginutil.c line 260
  • #20 gst_vaapi_create_display_from_gl_context
    at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapipluginutil.c line 305
  • #21 gst_vaapi_ensure_display
    at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapipluginutil.c line 387
  • #22 gst_vaapi_plugin_base_ensure_display
    at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapipluginbase.c line 395
  • #23 gst_vaapidecode_start
    at ../subprojects/gstreamer-vaapi/gst/vaapi/gstvaapidecode.c line 1085
  • #24 gst_video_decoder_change_state
    at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c line 2507
  • #25 gst_element_change_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2952
  • #26 gst_element_set_state_func
    at ../subprojects/gstreamer/gst/gstelement.c line 2906
  • #27 gst_bin_element_set_state
    at ../subprojects/gstreamer/gst/gstbin.c line 2599
  • #28 gst_bin_change_state_func
    at ../subprojects/gstreamer/gst/gstbin.c line 2941
  • #29 gst_element_change_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2952
  • #30 gst_element_continue_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2660
  • #31 gst_element_change_state
    at ../subprojects/gstreamer/gst/gstelement.c line 2991
  • #32 gst_element_set_state_func
    at ../subprojects/gstreamer/gst/gstelement.c line 2906
  • #33 main
    at ../subprojects/gstreamer/tools/gst-launch.c line 1133

Comment 1 Víctor Manuel Jáquez Leal 2018-08-28 17:29:14 UTC
This looks like consequence of using the GBM's GL backend.

Can you compile GstGL with out GBM and see if the the issue persist?

Perhaps gstreamer-vaapi should ban the GBM display.
Comment 2 Florent Thiéry 2018-08-29 07:52:25 UTC
Rebuilt master with:

gst-build (master)$ meson configure -Dgst-plugins-base:gl_winsys=x11 build
gst-build (master)$ cd build && ninja

Indeed, the issue is not persisting.
Comment 3 Víctor Manuel Jáquez Leal 2018-09-18 12:44:36 UTC
Florent,

Could your reproduce the issue (recompiling) and get a full back-trace, because the one you posted doesn't show the crash, it might happen in other thread.

Those systems have two video cards?
Comment 4 Florent Thiéry 2018-09-19 08:13:01 UTC
> Could your reproduce the issue (recompiling) and get a full back-trace,
> because the one you posted doesn't show the crash, it might happen in other
> thread.

Actually, i now upgraded to 1.14.3 and i can't seem to reproduce this yet. If i reproduce it, i will post "bt full" output.

I still see the following message on my system running xorg (ran over ssh), but it does not crash anymore:
i965_dri.so does not support the 0xffffffff PCI ID.

$ GST_DEBUG=vaapi:5 gst-launch-1.0 videotestsrc num-buffers=1 ! vaapipostproc ! fakesink
0:00:00.006320476 23509 0x559bf230e520 INFO                   vaapi gstvaapiutils.c:121:vaapi_initialize: VA-API version 1.2
0:00:00.006675600 23509 0x559bf230e520 INFO                   vaapi gstvaapiutils.c:121:vaapi_initialize: VA-API version 1.2
0:00:00.104822814 23508 0x55b3c6c84a00 INFO                   vaapi gstvaapiutils.c:121:vaapi_initialize: VA-API version 1.2
0:00:00.105309479 23508 0x55b3c6c84a00 INFO                   vaapi gstvaapiutils.c:121:vaapi_initialize: VA-API version 1.2
Définition du pipeline à PAUSED...
i965_dri.so does not support the 0xffffffff PCI ID.
0:00:00.274348331 23508 0x55b3c6c84a00 INFO                   vaapi gstvaapiutils.c:121:vaapi_initialize: VA-API version 1.2
0:00:00.274874405 23508 0x55b3c6c84a00 INFO                   vaapi gstvaapiutils.c:121:vaapi_initialize: VA-API version 1.2
Le pipeline est en phase de PREROLL…
Contexte de l’élément « vaapipostproc0 » : gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayGBM\)\ gldisplaygbm0";
Contexte de l’élément « vaapipostproc0 » : gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\ vaapidisplaydrm1";

> Those systems have two video cards?

Nope, just the Intel GPU.
Comment 5 Víctor Manuel Jáquez Leal 2018-09-19 15:15:28 UTC
> I still see the following message on my system running xorg (ran over ssh), but > it does not crash anymore:
> i965_dri.so does not support the 0xffffffff PCI ID.

Yeah, I'm seeing that in my Haswell laptop.  Don't know where it comes from.

Can we close the bug?
Comment 6 Florent Thiéry 2018-09-19 15:23:26 UTC
Sure, go ahead