Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
gst-plugins-bad
gst-plugins-bad
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 998
    • Issues 998
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 202
    • Merge Requests 202
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GStreamer
  • gst-plugins-badgst-plugins-bad
  • Issues
  • #1101

Closed
Open
Opened Oct 19, 2019 by Philippe Normand@philn🥑Maintainer

wpe: Internal thread racy-deadlocks when receiving frameComplete

Thread 20 (Thread 0x7febbf7f6700 (LWP 23256)):
#0  0x00007fec089720c9 in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fec09684fac in g_mutex_lock_slowpath (mutex=mutex@entry=0x7febe0040588) at ../../../glib/gthread-posix.c:1331
#2  0x00007fec09685832 in g_mutex_lock (mutex=mutex@entry=0x7febe0040588) at ../../../glib/gthread-posix.c:1355
#3  0x00007febffd57d9a in GMutexHolder::GMutexHolder(_GMutex&) (mutex=..., this=<synthetic pointer>) at ../subprojects/gst-plugins-bad/ext/wpe/WPEThreadedView.cpp:501
#4  0x00007febffd57d9a in WPEThreadedView::handleExportedImage(void*) (this=0x7febe0040510, image=<optimized out>) at ../subprojects/gst-plugins-bad/ext/wpe/WPEThreadedView.cpp:501
#5  0x00007febffd37948 in (anonymous namespace)::ClientBundleEGL::exportImage(wpe_fdo_egl_exported_image*) () at /home/phil/prefix-wpe/lib/libWPEBackend-fdo-1.0.so.1
#6  0x00007febffd37873 in (anonymous namespace)::ClientBundleEGL::exportBuffer(linux_dmabuf_buffer const*) () at /home/phil/prefix-wpe/lib/libWPEBackend-fdo-1.0.so.1
#7  0x00007febffd312da in ViewBackend::exportLinuxDmabuf(linux_dmabuf_buffer const*) () at /home/phil/prefix-wpe/lib/libWPEBackend-fdo-1.0.so.1
#8  0x00007febffd31f50 in WS::{lambda(wl_client*, wl_resource*)#10}::operator()(wl_client*, wl_resource*) const () at /home/phil/prefix-wpe/lib/libWPEBackend-fdo-1.0.so.1
#9  0x00007febffd31fa2 in WS::{lambda(wl_client*, wl_resource*)#10}::_FUN(wl_client*, wl_resource*) () at /home/phil/prefix-wpe/lib/libWPEBackend-fdo-1.0.so.1
#10 0x00007fec0872e8ee in ffi_call_unix64 () at /usr/lib/x86_64-linux-gnu/libffi.so.6
#11 0x00007fec0872e2bf in ffi_call () at /usr/lib/x86_64-linux-gnu/libffi.so.6
#12 0x00007febffe8ac2d in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
#13 0x00007febffe87689 in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
#14 0x00007febffe88c42 in wl_event_loop_dispatch () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
#15 0x00007febffd31b1f in WS::ServerSource::{lambda(_GSource*, int (*)(void*), void*)#3}::operator()(_GSource*, int (*)(void*), void*) const () at /home/phil/prefix-wpe/lib/libWPEBackend-fdo-1.0.so.1
#16 0x00007febffd31b86 in WS::ServerSource::{lambda(_GSource*, int (*)(void*), void*)#3}::_FUN(_GSource*, int (*)(void*), void*) () at /home/phil/prefix-wpe/lib/libWPEBackend-fdo-1.0.so.1
#17 0x00007fec0963a9ee in g_main_dispatch (context=0x7feb88000b20) at ../../../glib/gmain.c:3189
#18 0x00007fec0963a9ee in g_main_context_dispatch (context=context@entry=0x7feb88000b20) at ../../../glib/gmain.c:3854
--Type <RET> for more, q to quit, c to continue without paging--
#19 0x00007fec0963ac88 in g_main_context_iterate (context=0x7feb88000b20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3927
#20 0x00007fec0963af82 in g_main_loop_run (loop=0x7feb88001440) at ../../../glib/gmain.c:4123
#21 0x00007febffd56b72 in WPEThreadedView::s_viewThread(void*) (data=0x7febe0040510) at ../subprojects/gst-plugins-bad/ext/wpe/WPEThreadedView.cpp:143
#22 0x00007fec0966389d in g_thread_proxy (data=0x7febe0002c50) at ../../../glib/gthread.c:805
#23 0x00007fec08a61fb7 in start_thread (arg=<optimized out>) at pthread_create.c:486
#24 0x00007fec089772ef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

...

Thread 7 (Thread 0x7febe68a9700 (LWP 23240)):
#0  0x00007fec089720c9 in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fec0968595f in g_cond_wait (cond=cond@entry=0x7febe0040518, mutex=mutex@entry=0x7febe0040510) at ../../../glib/gthread-posix.c:1413
#2  0x00007febffd57597 in WPEThreadedView::frameComplete() (this=0x7febe0040510) at ../subprojects/gst-plugins-bad/ext/wpe/WPEThreadedView.cpp:350
#3  0x00007febffd576e3 in WPEThreadedView::image() (this=0x7febe0040510) at ../subprojects/gst-plugins-bad/ext/wpe/WPEThreadedView.cpp:291
#4  0x00007febffd5860e in gst_wpe_src_fill_memory(GstGLBaseSrc*, GstGLMemory*) (bsrc=<optimized out>, memory=0x7feb940149b0) at ../subprojects/gst-plugins-bad/ext/wpe/gstwpesrc.cpp:142
#5  0x00007fec044d5f38 in _fill_gl (context=<optimized out>, src=<optimized out>) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.c:328
#6  0x00007fec044fdf43 in _run_message_sync (message=0x7febc2ffc4d0) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c:588
#7  0x00007fec044fdee2 in _run_message_async (message=0x55f43fafff80) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c:655
#8  0x00007fec0963a898 in g_main_dispatch (context=0x55f43fcb6140) at ../../../glib/gmain.c:3189
#9  0x00007fec0963a898 in g_main_context_dispatch (context=context@entry=0x55f43fcb6140) at ../../../glib/gmain.c:3854
#10 0x00007fec0963ac88 in g_main_context_iterate (context=0x55f43fcb6140, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3927
#11 0x00007fec0963af82 in g_main_loop_run (loop=0x55f43fcb6230) at ../../../glib/gmain.c:4123
#12 0x00007fec044fdfc5 in gst_gl_window_default_run (window=0x55f43fc771f0 [GstGLWindowWaylandEGL]) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglwindow.c:514
#13 0x00007fec044e0b97 in gst_gl_context_create_thread (context=0x7febf8009850 [GstGLContextEGL]) at ../subprojects/gst-plugins-base/gst-libs/gst/gl/gstglcontext.c:1320
#14 0x00007fec0966389d in g_thread_proxy (data=0x55f43fa546d0) at ../../../glib/gthread.c:805
#15 0x00007fec08a61fb7 in start_thread (arg=<optimized out>) at pthread_create.c:486
#16 0x00007fec089772ef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

...
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: gstreamer/gst-plugins-bad#1101