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 751739 - Deadlock in X11 when setting XSetErrorHandler while another thread is opening display with XOpenDisplay
Deadlock in X11 when setting XSetErrorHandler while another thread is opening...
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Backend: X11
3.16.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks: 682886
 
 
Reported: 2015-06-30 16:40 UTC by Thibault Saunier
Modified: 2015-07-01 15:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
x11: Avoid X error traps within server grabs (4.72 KB, patch)
2015-06-30 17:06 UTC, Carlos Garnacho
committed Details | Review

Description Thibault Saunier 2015-06-30 16:40:49 UTC
<owen> thiblahute: the problem shown by the backtraces is a) thread A - XGrabServer() [server grab is established]; XSetErrorHandler() [wants global lock within process]
<owen> b) thread B) - XOpenDisplay - gets the global lock and keeps it until the display is open, then tries to open the display, but the server is grabbed
<owen> I think moving the gdk_x11_display_error_trap_push()/pop() calls in gdk_x11_device_xi2_window_at_position() to outside everything and checking the return values from XIQueryPointer() fixes the problem
<owen> garnacho_: ^^^^^^^^^^^^^^^^
* mcrha is now known as mcrha|afk
<owen> It's really more of an xlib issue, though not entirely sure how to fix it - I do wonder *why* XOpenDisplay needs to hold the global lock across the xcb calls to open the displayXOpenDisplay


Thread 11 (Thread 0x7f2b1b013700 (LWP 17219))

  • #0 syscall
    from /usr/lib/libc.so.6
  • #1 g_cond_wait
    from /usr/lib/libglib-2.0.so.0
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 ??
    from /usr/lib/libglib-2.0.so.0
  • #4 ??
    from /usr/lib/libglib-2.0.so.0
  • #5 start_thread
    from /usr/lib/libpthread.so.0
  • #6 clone
    from /usr/lib/libc.so.6

Thread 10 (Thread 0x7f2b1a812700 (LWP 17220))

  • #0 syscall
    from /usr/lib/libc.so.6
  • #1 g_cond_wait
    from /usr/lib/libglib-2.0.so.0
  • #2 gst_task_func
    at gsttask.c line 316
  • #3 ??
    from /usr/lib/libglib-2.0.so.0
  • #4 ??
    from /usr/lib/libglib-2.0.so.0
  • #5 start_thread
    from /usr/lib/libpthread.so.0
  • #6 clone
    from /usr/lib/libc.so.6

Thread 9 (Thread 0x7f2b1a011700 (LWP 17221))

  • #0 syscall
    from /usr/lib/libc.so.6
  • #1 g_cond_wait
    from /usr/lib/libglib-2.0.so.0
  • #2 do_probe_callbacks
    at gstpad.c line 3516
  • #3 gst_pad_push_event_unchecked
    at gstpad.c line 5020
  • #4 push_sticky
    at gstpad.c line 3651
  • #5 events_foreach
    at gstpad.c line 590
  • #6 check_sticky
    at gstpad.c line 3707
  • #7 gst_pad_push_event
    at gstpad.c line 5178
  • #8 event_forward_func
    at gstpad.c line 2884
  • #9 gst_pad_forward
    at gstpad.c line 2838
  • #10 gst_pad_event_default
    at gstpad.c line 2935
  • #11 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #12 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #13 push_sticky
    at gstpad.c line 3651
  • #14 events_foreach
    at gstpad.c line 590
  • #15 check_sticky
    at gstpad.c line 3707
  • #16 gst_pad_push_event
    at gstpad.c line 5178
  • #17 event_forward_func
    at gstpad.c line 2884
  • #18 gst_pad_forward
    at gstpad.c line 2838
  • #19 gst_pad_event_default
    at gstpad.c line 2935
  • #20 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #21 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #22 push_sticky
    at gstpad.c line 3651
  • #23 events_foreach
    at gstpad.c line 590
  • #24 check_sticky
    at gstpad.c line 3707
  • #25 gst_pad_push_event
    at gstpad.c line 5178
  • #26 event_forward_func
    at gstpad.c line 2884
  • #27 gst_pad_forward
    at gstpad.c line 2838
  • #28 gst_pad_event_default
    at gstpad.c line 2935
  • #29 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #30 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #31 push_sticky
    at gstpad.c line 3651
  • #32 events_foreach
    at gstpad.c line 590
  • #33 check_sticky
    at gstpad.c line 3707
  • #34 gst_pad_push_event
    at gstpad.c line 5178
  • #35 event_forward_func
    at gstpad.c line 2884
  • #36 gst_pad_forward
    at gstpad.c line 2838
  • #37 gst_pad_event_default
    at gstpad.c line 2935
  • #38 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #39 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #40 push_sticky
    at gstpad.c line 3651
  • #41 events_foreach
    at gstpad.c line 590
  • #42 check_sticky
    at gstpad.c line 3707
  • #43 gst_pad_push_event
    at gstpad.c line 5178
  • #44 gst_base_transform_sink_eventfunc
    at gstbasetransform.c line 1936
  • #45 gst_capsfilter_sink_event
    at gstcapsfilter.c line 519
  • #46 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #47 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #48 push_sticky
    at gstpad.c line 3651
  • #49 events_foreach
    at gstpad.c line 590
  • #50 check_sticky
    at gstpad.c line 3707
  • #51 gst_pad_push_event
    at gstpad.c line 5178
  • #52 event_forward_func
    at gstpad.c line 2884
  • #53 gst_pad_forward
    at gstpad.c line 2838
  • #54 gst_pad_event_default
    at gstpad.c line 2935
  • #55 internalpad_event_function
    at nle/nleghostpad.c line 350
  • #56 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #57 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #58 push_sticky
    at gstpad.c line 3651
  • #59 events_foreach
    at gstpad.c line 590
  • #60 check_sticky
    at gstpad.c line 3707
  • #61 gst_pad_push_event
    at gstpad.c line 5178
  • #62 event_forward_func
    at gstpad.c line 2884
  • #63 gst_pad_forward
    at gstpad.c line 2838
  • #64 gst_pad_event_default
    at gstpad.c line 2935
  • #65 internalpad_event_function
    at nle/nleghostpad.c line 350
  • #66 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #67 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #68 push_sticky
    at gstpad.c line 3651
  • #69 events_foreach
    at gstpad.c line 590
  • #70 check_sticky
    at gstpad.c line 3707
  • #71 gst_pad_push_event
    at gstpad.c line 5178
  • #72 event_forward_func
    at gstpad.c line 2884
  • #73 gst_pad_forward
    at gstpad.c line 2838
  • #74 gst_pad_event_default
    at gstpad.c line 2935
  • #75 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #76 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #77 push_sticky
    at gstpad.c line 3651
  • #78 events_foreach
    at gstpad.c line 590
  • #79 check_sticky
    at gstpad.c line 3707
  • #80 gst_pad_push_event
    at gstpad.c line 5178
  • #81 gst_aggregator_push_mandatory_events
    at gstaggregator.c line 426
  • #82 gst_aggregator_set_src_caps
    at gstaggregator.c line 482
  • #83 gst_audio_aggregator_aggregate
    at gstaudioaggregator.c line 1053
  • #84 gst_aggregator_aggregate_func
    at gstaggregator.c line 673
  • #85 gst_task_func
    at gsttask.c line 331
  • #86 ??
    from /usr/lib/libglib-2.0.so.0
  • #87 ??
    from /usr/lib/libglib-2.0.so.0
  • #88 start_thread
    from /usr/lib/libpthread.so.0
  • #89 clone
    from /usr/lib/libc.so.6

Thread 8 (Thread 0x7f2b19810700 (LWP 17222))

  • #0 syscall
    from /usr/lib/libc.so.6
  • #1 g_cond_wait
    from /usr/lib/libglib-2.0.so.0
  • #2 gst_gl_context_create
    at gstglcontext.c line 933
  • #3 gtk_gst_gl_widget_init_winsys
    at gtkgstglwidget.c line 704
  • #4 gst_gtk_gl_sink_change_state
    at gstgtkglsink.c line 327
  • #5 gst_element_change_state
    at gstelement.c line 2604
  • #6 gst_element_set_state_func
    at gstelement.c line 2560
  • #7 gst_bin_element_set_state
    at gstbin.c line 2328
  • #8 gst_bin_change_state_func
    at gstbin.c line 2676
  • #9 gst_element_change_state
    at gstelement.c line 2604
  • #10 gst_element_set_state_func
    at gstelement.c line 2560
  • #11 try_element
    at gstplaysink.c line 1447
  • #12 gen_video_chain
    at gstplaysink.c line 1739
  • #13 gst_play_sink_do_reconfigure
    at gstplaysink.c line 3321
  • #14 sinkpad_blocked_cb
    at gstplaysink.c line 4283
  • #15 probe_hook_marshal
    at gstpad.c line 3338
  • #16 g_hook_list_marshal
    from /usr/lib/libglib-2.0.so.0
  • #17 do_probe_callbacks
    at gstpad.c line 3476
  • #18 gst_pad_push_event_unchecked
    at gstpad.c line 5020
  • #19 push_sticky
    at gstpad.c line 3651
  • #20 events_foreach
    at gstpad.c line 590
  • #21 check_sticky
    at gstpad.c line 3707
  • #22 gst_pad_push_event
    at gstpad.c line 5178
  • #23 event_forward_func
    at gstpad.c line 2884
  • #24 gst_pad_forward
    at gstpad.c line 2838
  • #25 gst_pad_event_default
    at gstpad.c line 2935
  • #26 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #27 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #28 push_sticky
    at gstpad.c line 3651
  • #29 events_foreach
    at gstpad.c line 590
  • #30 check_sticky
    at gstpad.c line 3707
  • #31 gst_pad_push_event
    at gstpad.c line 5178
  • #32 event_forward_func
    at gstpad.c line 2884
  • #33 gst_pad_forward
    at gstpad.c line 2838
  • #34 gst_pad_event_default
    at gstpad.c line 2935
  • #35 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #36 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #37 push_sticky
    at gstpad.c line 3651
  • #38 events_foreach
    at gstpad.c line 590
  • #39 check_sticky
    at gstpad.c line 3707
  • #40 gst_pad_push_event
    at gstpad.c line 5178
  • #41 event_forward_func
    at gstpad.c line 2884
  • #42 gst_pad_forward
    at gstpad.c line 2838
  • #43 gst_pad_event_default
    at gstpad.c line 2935
  • #44 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #45 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #46 push_sticky
    at gstpad.c line 3651
  • #47 events_foreach
    at gstpad.c line 590
  • #48 check_sticky
    at gstpad.c line 3707
  • #49 gst_pad_push_event
    at gstpad.c line 5178
  • #50 event_forward_func
    at gstpad.c line 2884
  • #51 gst_pad_forward
    at gstpad.c line 2838
  • #52 gst_pad_event_default
    at gstpad.c line 2935
  • #53 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #54 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #55 push_sticky
    at gstpad.c line 3651
  • #56 events_foreach
    at gstpad.c line 590
  • #57 check_sticky
    at gstpad.c line 3707
  • #58 gst_pad_push_event
    at gstpad.c line 5178
  • #59 gst_base_transform_sink_eventfunc
    at gstbasetransform.c line 1936
  • #60 gst_capsfilter_sink_event
    at gstcapsfilter.c line 519
  • #61 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #62 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #63 push_sticky
    at gstpad.c line 3651
  • #64 events_foreach
    at gstpad.c line 590
  • #65 check_sticky
    at gstpad.c line 3707
  • #66 gst_pad_push_event
    at gstpad.c line 5178
  • #67 event_forward_func
    at gstpad.c line 2884
  • #68 gst_pad_forward
    at gstpad.c line 2838
  • #69 gst_pad_event_default
    at gstpad.c line 2935
  • #70 internalpad_event_function
    at nle/nleghostpad.c line 350
  • #71 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #72 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #73 push_sticky
    at gstpad.c line 3651
  • #74 events_foreach
    at gstpad.c line 590
  • #75 check_sticky
    at gstpad.c line 3707
  • #76 gst_pad_push_event
    at gstpad.c line 5178
  • #77 event_forward_func
    at gstpad.c line 2884
  • #78 gst_pad_forward
    at gstpad.c line 2838
  • #79 gst_pad_event_default
    at gstpad.c line 2935
  • #80 internalpad_event_function
    at nle/nleghostpad.c line 350
  • #81 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #82 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #83 push_sticky
    at gstpad.c line 3651
  • #84 events_foreach
    at gstpad.c line 590
  • #85 check_sticky
    at gstpad.c line 3707
  • #86 gst_pad_push_event
    at gstpad.c line 5178
  • #87 event_forward_func
    at gstpad.c line 2884
  • #88 gst_pad_forward
    at gstpad.c line 2838
  • #89 gst_pad_event_default
    at gstpad.c line 2935
  • #90 gst_pad_send_event_unchecked
    at gstpad.c line 5377
  • #91 gst_pad_push_event_unchecked
    at gstpad.c line 5053
  • #92 push_sticky
    at gstpad.c line 3651
  • #93 events_foreach
    at gstpad.c line 590
  • #94 check_sticky
    at gstpad.c line 3707
  • #95 gst_pad_push_event
    at gstpad.c line 5178
  • #96 gst_aggregator_push_mandatory_events
    at gstaggregator.c line 426
  • #97 gst_aggregator_set_src_caps
    at gstaggregator.c line 482
  • #98 gst_videoaggregator_src_setcaps
    at gstvideoaggregator.c line 626
  • #99 gst_videoaggregator_update_src_caps
    at gstvideoaggregator.c line 777
  • #100 gst_videoaggregator_check_reconfigure
    at gstvideoaggregator.c line 1311
  • #101 gst_videoaggregator_aggregate
    at gstvideoaggregator.c line 1363
  • #102 gst_aggregator_aggregate_func
    at gstaggregator.c line 673
  • #103 gst_task_func
    at gsttask.c line 331
  • #104 ??
    from /usr/lib/libglib-2.0.so.0
  • #105 ??
    from /usr/lib/libglib-2.0.so.0
  • #106 start_thread
    from /usr/lib/libpthread.so.0
  • #107 clone
    from /usr/lib/libc.so.6

Thread 7 (Thread 0x7f2b1900f700 (LWP 17223))

  • #0 syscall
    from /usr/lib/libc.so.6
  • #1 g_cond_wait
    from /usr/lib/libglib-2.0.so.0
  • #2 gst_aggregator_pad_chain
    at gstaggregator.c line 1841
  • #3 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #4 gst_pad_push_data
    at gstpad.c line 4271
  • #5 gst_pad_push
    at gstpad.c line 4383
  • #6 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #7 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #8 gst_pad_push_data
    at gstpad.c line 4271
  • #9 gst_pad_push
    at gstpad.c line 4383
  • #10 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #11 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #12 gst_pad_push_data
    at gstpad.c line 4271
  • #13 gst_pad_push
    at gstpad.c line 4383
  • #14 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #15 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #16 gst_pad_push_data
    at gstpad.c line 4271
  • #17 gst_pad_push
    at gstpad.c line 4383
  • #18 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #19 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #20 gst_pad_push_data
    at gstpad.c line 4271
  • #21 gst_pad_push
    at gstpad.c line 4383
  • #22 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #23 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #24 gst_pad_push_data
    at gstpad.c line 4271
  • #25 gst_pad_push
    at gstpad.c line 4383
  • #26 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #27 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #28 gst_pad_push_data
    at gstpad.c line 4271
  • #29 gst_pad_push
    at gstpad.c line 4383
  • #30 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #31 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #32 gst_pad_push_data
    at gstpad.c line 4271
  • #33 gst_pad_push
    at gstpad.c line 4383
  • #34 gst_base_src_loop
    at gstbasesrc.c line 2845
  • #35 gst_task_func
    at gsttask.c line 331
  • #36 ??
    from /usr/lib/libglib-2.0.so.0
  • #37 ??
    from /usr/lib/libglib-2.0.so.0
  • #38 start_thread
    from /usr/lib/libpthread.so.0
  • #39 clone
    from /usr/lib/libc.so.6

Thread 6 (Thread 0x7f2b1880e700 (LWP 17224))

  • #0 syscall
    from /usr/lib/libc.so.6
  • #1 g_cond_wait
    from /usr/lib/libglib-2.0.so.0
  • #2 gst_aggregator_pad_chain
    at gstaggregator.c line 1841
  • #3 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #4 gst_pad_push_data
    at gstpad.c line 4271
  • #5 gst_pad_push
    at gstpad.c line 4383
  • #6 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #7 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #8 gst_pad_push_data
    at gstpad.c line 4271
  • #9 gst_pad_push
    at gstpad.c line 4383
  • #10 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #11 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #12 gst_pad_push_data
    at gstpad.c line 4271
  • #13 gst_pad_push
    at gstpad.c line 4383
  • #14 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #15 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #16 gst_pad_push_data
    at gstpad.c line 4271
  • #17 gst_pad_push
    at gstpad.c line 4383
  • #18 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #19 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #20 gst_pad_push_data
    at gstpad.c line 4271
  • #21 gst_pad_push
    at gstpad.c line 4383
  • #22 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #23 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #24 gst_pad_push_data
    at gstpad.c line 4271
  • #25 gst_pad_push
    at gstpad.c line 4383
  • #26 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #27 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #28 gst_pad_push_data
    at gstpad.c line 4271
  • #29 gst_pad_push
    at gstpad.c line 4383
  • #30 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #31 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #32 gst_pad_push_data
    at gstpad.c line 4271
  • #33 gst_pad_push
    at gstpad.c line 4383
  • #34 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #35 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #36 gst_pad_push_data
    at gstpad.c line 4271
  • #37 gst_pad_push
    at gstpad.c line 4383
  • #38 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #39 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #40 gst_pad_push_data
    at gstpad.c line 4271
  • #41 gst_pad_push
    at gstpad.c line 4383
  • #42 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #43 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #44 gst_pad_push_data
    at gstpad.c line 4271
  • #45 gst_pad_push
    at gstpad.c line 4383
  • #46 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #47 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #48 gst_pad_push_data
    at gstpad.c line 4271
  • #49 gst_pad_push
    at gstpad.c line 4383
  • #50 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #51 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #52 gst_pad_push_data
    at gstpad.c line 4271
  • #53 gst_pad_push
    at gstpad.c line 4383
  • #54 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #55 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #56 gst_pad_push_data
    at gstpad.c line 4271
  • #57 gst_pad_push
    at gstpad.c line 4383
  • #58 gst_base_src_loop
    at gstbasesrc.c line 2845
  • #59 gst_task_func
    at gsttask.c line 331
  • #60 ??
    from /usr/lib/libglib-2.0.so.0
  • #61 ??
    from /usr/lib/libglib-2.0.so.0
  • #62 start_thread
    from /usr/lib/libpthread.so.0
  • #63 clone
    from /usr/lib/libc.so.6

Thread 5 (Thread 0x7f2b037fe700 (LWP 17226))

  • #0 syscall
    from /usr/lib/libc.so.6
  • #1 g_cond_wait
    from /usr/lib/libglib-2.0.so.0
  • #2 gst_aggregator_pad_chain
    at gstaggregator.c line 1841
  • #3 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #4 gst_pad_push_data
    at gstpad.c line 4271
  • #5 gst_pad_push
    at gstpad.c line 4383
  • #6 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #7 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #8 gst_pad_push_data
    at gstpad.c line 4271
  • #9 gst_pad_push
    at gstpad.c line 4383
  • #10 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #11 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #12 gst_pad_push_data
    at gstpad.c line 4271
  • #13 gst_pad_push
    at gstpad.c line 4383
  • #14 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #15 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #16 gst_pad_push_data
    at gstpad.c line 4271
  • #17 gst_pad_push
    at gstpad.c line 4383
  • #18 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #19 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #20 gst_pad_push_data
    at gstpad.c line 4271
  • #21 gst_pad_push
    at gstpad.c line 4383
  • #22 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #23 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #24 gst_pad_push_data
    at gstpad.c line 4271
  • #25 gst_pad_push
    at gstpad.c line 4383
  • #26 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #27 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #28 gst_pad_push_data
    at gstpad.c line 4271
  • #29 gst_pad_push
    at gstpad.c line 4383
  • #30 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #31 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #32 gst_pad_push_data
    at gstpad.c line 4271
  • #33 gst_pad_push
    at gstpad.c line 4383
  • #34 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #35 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #36 gst_pad_push_data
    at gstpad.c line 4271
  • #37 gst_pad_push
    at gstpad.c line 4383
  • #38 gst_video_rate_flush_prev
    at gstvideorate.c line 649
  • #39 gst_video_rate_transform_ip
    at gstvideorate.c line 1214
  • #40 default_generate_output
    at gstbasetransform.c line 2171
  • #41 gst_base_transform_chain
    at gstbasetransform.c line 2331
  • #42 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #43 gst_pad_push_data
    at gstpad.c line 4271
  • #44 gst_pad_push
    at gstpad.c line 4383
  • #45 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #46 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #47 gst_pad_push_data
    at gstpad.c line 4271
  • #48 gst_pad_push
    at gstpad.c line 4383
  • #49 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #50 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #51 gst_pad_push_data
    at gstpad.c line 4271
  • #52 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #53 gst_pad_push_data
    at gstpad.c line 4271
  • #54 gst_pad_push
    at gstpad.c line 4383
  • #55 gst_base_transform_chain
    at gstbasetransform.c line 2367
  • #56 gst_pad_chain_data_unchecked
    at gstpad.c line 4038
  • #57 gst_pad_push_data
    at gstpad.c line 4271
  • #58 gst_pad_push
    at gstpad.c line 4383
  • #59 gst_queue_push_one
    at gstqueue.c line 1337
  • #60 gst_queue_loop
    at gstqueue.c line 1484
  • #61 gst_task_func
    at gsttask.c line 331
  • #62 ??
    from /usr/lib/libglib-2.0.so.0
  • #63 ??
    from /usr/lib/libglib-2.0.so.0
  • #64 start_thread
    from /usr/lib/libpthread.so.0
  • #65 clone
    from /usr/lib/libc.so.6

Thread 4 (Thread 0x7f2b027fc700 (LWP 17228))

  • #0 syscall
    from /usr/lib/libc.so.6
  • #1 g_cond_wait
    from /usr/lib/libglib-2.0.so.0
  • #2 gst_queue_handle_sink_query
    at gstqueue.c line 1027
  • #3 gst_pad_query
    at gstpad.c line 3792
  • #4 gst_pad_peer_query
    at gstpad.c line 3920
  • #5 query_forward_func
    at gstpad.c line 3199
  • #6 gst_pad_forward
    at gstpad.c line 2838
  • #7 gst_pad_query_default
    at gstpad.c line 3266
  • #8 gst_pad_query
    at gstpad.c line 3792
  • #9 gst_pad_peer_query
    at gstpad.c line 3920
  • #10 gst_base_transform_default_propose_allocation
    at gstbasetransform.c line 1452
  • #11 gst_base_transform_default_query
    at gstbasetransform.c line 1516
  • #12 gst_pad_query
    at gstpad.c line 3792
  • #13 gst_pad_peer_query
    at gstpad.c line 3920
  • #14 gst_base_src_prepare_allocation
    at gstbasesrc.c line 3132
  • #15 gst_base_src_negotiate
    at gstbasesrc.c line 3276
  • #16 gst_base_src_loop
    at gstbasesrc.c line 2693
  • #17 gst_task_func
    at gsttask.c line 331
  • #18 ??
    from /usr/lib/libglib-2.0.so.0
  • #19 ??
    from /usr/lib/libglib-2.0.so.0
  • #20 start_thread
    from /usr/lib/libpthread.so.0
  • #21 clone
    from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f2b47e47700 (LWP 17214))

  • #0 __lll_lock_wait
    from /usr/lib/libpthread.so.0
  • #1 __lll_lock_elision
    from /usr/lib/libpthread.so.0
  • #2 XSetErrorHandler
    from /usr/lib/libX11.so
  • #3 ??
    from /usr/lib/libgdk-3.so.0
  • #4 gdk_x11_display_error_trap_push
    from /usr/lib/libgdk-3.so.0
  • #5 ??
    from /usr/lib/libgdk-3.so.0
  • #6 gdk_device_get_window_at_position_double
    from /usr/lib/libgdk-3.so.0
  • #7 gdk_device_get_window_at_position
    from /usr/lib/libgdk-3.so.0
  • #8 gtk_tooltip_trigger_tooltip_query
    from /usr/lib/libgtk-3.so.0
  • #9 g_slist_foreach
    from /usr/lib/libglib-2.0.so.0
  • #10 ??
    from /usr/lib/libgtk-3.so.0
  • #11 ??
    from /usr/lib/libgdk-3.so.0
  • #12 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #13 ??
    from /usr/lib/libglib-2.0.so.0
  • #14 g_main_context_iteration
    from /usr/lib/libglib-2.0.so.0
  • #15 g_application_run
    from /usr/lib/libgio-2.0.so.0
  • #16 ffi_call_unix64
    from /usr/lib/libffi.so.6
  • #17 ffi_call
    from /usr/lib/libffi.so.6
  • #18 ??
    from /usr/lib/python3.4/site-packages/gi/_gi.cpython-34m.so
  • #19 ??
    from /usr/lib/python3.4/site-packages/gi/_gi.cpython-34m.so
  • #20 ??
    from /usr/lib/python3.4/site-packages/gi/_gi.cpython-34m.so
  • #21 PyObject_Call
    at Objects/abstract.c line 2040
  • #22 do_call
    at Python/ceval.c line 4466
  • #23 call_function
    at Python/ceval.c line 4264
  • #24 PyEval_EvalFrameEx
    at Python/ceval.c line 2838
  • #25 fast_function
    at Python/ceval.c line 4334
  • #26 call_function
    at Python/ceval.c line 4262
  • #27 PyEval_EvalFrameEx
    at Python/ceval.c line 2838
  • #28 PyEval_EvalCodeEx
    at Python/ceval.c line 3588
  • #29 PyEval_EvalCode
    at Python/ceval.c line 775
  • #30 run_mod
    at Python/pythonrun.c line 2180
  • #31 PyRun_FileExFlags
    at Python/pythonrun.c line 2133
  • #32 PyRun_SimpleFileExFlags
    at Python/pythonrun.c line 1606
  • #33 run_file
    at Modules/main.c line 319
  • #34 Py_Main
    at Modules/main.c line 751
  • #35 main

Comment 1 Carlos Garnacho 2015-06-30 17:06:57 UTC
Created attachment 306425 [details] [review]
x11: Avoid X error traps within server grabs

gdk_x11_device_xi2_window_at_position() may attempt to push/pop
a few error trap pairs while traversing the window tree. Move it
outside the server grab, and around the multiple XIQueryPointer
calls we may do here.
Comment 2 Matthias Clasen 2015-06-30 20:32:05 UTC
Review of attachment 306425 [details] [review]:

ok
Comment 3 Matthias Clasen 2015-07-01 14:55:01 UTC
Attachment 306425 [details] pushed as 0f3995a - x11: Avoid X error traps within server grabs
Comment 4 Thibault Saunier 2015-07-01 15:30:55 UTC
Any luck to get that backported on the 3.16 branch?