Mir

mir_window_request_persistent_id_sync seg faults when called twice

Bug #1661704 reported by Cemil Azizoglu
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Critical
Cemil Azizoglu
0.26
Fix Released
Critical
Cemil Azizoglu
mir (Ubuntu)
Fix Released
Critical
Unassigned

Bug Description

Thread 1 "gtk3-widget-fac" received signal SIGSEGV, Segmentation fault.
__GI___pthread_mutex_lock (mutex=0x0) at ../nptl/pthread_mutex_lock.c:67
67 ../nptl/pthread_mutex_lock.c: No such file or directory.
(gdb) bt
#0 __GI___pthread_mutex_lock (mutex=0x0) at ../nptl/pthread_mutex_lock.c:67
#1 0x00007ffff37c1003 in __gthread_mutex_lock () at /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:748
#2 std::mutex::lock() (this=0x0) at /usr/include/c++/6/bits/std_mutex.h:103
#3 std::unique_lock<std::mutex>::lock() (this=0x7fffffffbad0) at /usr/include/c++/6/bits/std_mutex.h:267
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) () at /usr/include/c++/6/bits/std_mutex.h:197
#5 MirWaitHandle::wait_for_all() (this=0x0) at ./src/client/mir_wait_handle.cpp:51
#6 0x00007ffff37d0623 in mir_surface_request_persistent_id_sync (surface=<optimized out>) at ./src/client/mir_surface_api.cpp:1266
#7 0x00007ffff7b7137a in gdk_mir_display_convert_selection (display=0x5555557ad010, requestor=0x555556235af0, selection=0x45, target=0x52, time=34494073)
    at /home/william/Code/jhbuild/checkout/gtk+-3/gdk/mir/gdkmirdisplay.c:845
#8 0x00007ffff7aee577 in gdk_selection_convert (requestor=0x555556235af0, selection=0x45, target=0x52, time=34494073) at /home/william/Code/jhbuild/checkout/gtk+-3/gdk/gdkselection.c:273
#9 0x00007ffff73f675e in gtk_selection_convert (widget=0x555555fcaf80, selection=0x45, target=0x52, time_=34494073) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkselection.c:1162
#10 0x00007ffff7537a04 in gtk_clipboard_real_request_contents (clipboard=0x555555fb7690, target=0x52, callback=0x7ffff74469cc <clipboard_clipboard_buffer_received>, user_data=0x7fffc00037b0)
    at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkclipboard.c:1023
#11 0x00007ffff753793f in gtk_clipboard_request_contents (clipboard=0x555555fb7690, target=0x52, callback=0x7ffff74469cc <clipboard_clipboard_buffer_received>, user_data=0x7fffc00037b0)
    at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkclipboard.c:994
#12 0x00007ffff74471be in gtk_text_buffer_paste_clipboard (buffer=0x55555594b2f0, clipboard=0x555555fb7690, override_location=0x0, default_editable=1)
    at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtktextbuffer.c:3871
#13 0x00007ffff747f7e6 in gtk_text_view_paste_clipboard (text_view=0x555555ad28b0) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtktextview.c:7156
#14 0x00007ffff62b4fe7 in g_cclosure_marshal_VOID__VOID (closure=0x555555cac020, return_value=0x0, n_param_values=1, param_values=0x55555616a050, invocation_hint=0x7fffffffc0e0,
    marshal_data=0x7ffff747f78d <gtk_text_view_paste_clipboard>) at /home/william/Code/jhbuild/checkout/glib/gobject/gmarshal.c:875
#15 0x00007ffff62b24a4 in g_type_class_meta_marshal (closure=0x555555cac020, return_value=0x0, n_param_values=1, param_values=0x55555616a050, invocation_hint=0x7fffffffc0e0, marshal_data=0x410)
    at /home/william/Code/jhbuild/checkout/glib/gobject/gclosure.c:997
#16 0x00007ffff62b1dc0 in g_closure_invoke (closure=0x555555cac020, return_value=0x0, n_param_values=1, param_values=0x55555616a050, invocation_hint=0x7fffffffc0e0)
    at /home/william/Code/jhbuild/checkout/glib/gobject/gclosure.c:804
#17 0x00007ffff62d0532 in signal_emit_unlocked_R (node=0x555555cac050, detail=0, instance=0x555555ad28b0, emission_return=0x0, instance_and_params=0x55555616a050)
    at /home/william/Code/jhbuild/checkout/glib/gobject/gsignal.c:3673
#18 0x00007ffff62ce32d in g_signal_emitv (instance_and_params=0x55555616a050, signal_id=450, detail=0, return_value=0x0) at /home/william/Code/jhbuild/checkout/glib/gobject/gsignal.c:3129
#19 0x00007ffff71a598c in gtk_binding_entry_activate (entry=0x555555cc7c80, object=0x555555ad28b0) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkbindings.c:646
#20 0x00007ffff71a7193 in binding_activate (binding_set=0x555555cac760, entries=0x5555562609c0, object=0x555555ad28b0, is_release=0, unbound=0x7fffffffc2ec)
    at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkbindings.c:1446
#21 0x00007ffff71a7320 in gtk_bindings_activate_list (object=0x555555ad28b0, entries=0x5555562609c0, is_release=0) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkbindings.c:1505
#22 0x00007ffff71a7594 in gtk_bindings_activate_event (object=0x555555ad28b0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkbindings.c:1592
#23 0x00007ffff7505621 in gtk_widget_real_key_press_event (widget=0x555555ad28b0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkwidget.c:7149
#24 0x00007ffff747b71d in gtk_text_view_key_press_event (widget=0x555555ad28b0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtktextview.c:5454
#25 0x00007ffff732b427 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x5555557f8350, return_value=0x7fffffffc7c0, instance=0x555555ad28b0, args=0x7fffffffc870,
    marshal_data=0x7ffff747b5bd <gtk_text_view_key_press_event>, n_params=1, param_types=0x5555557f84c0) at gtkmarshalers.c:131
#26 0x00007ffff62b2526 in g_type_class_meta_marshalv (closure=0x5555557f8350, return_value=0x7fffffffc7c0, instance=0x555555ad28b0, args=0x7fffffffc870, marshal_data=0x1b0, n_params=1,
    param_types=0x5555557f84c0) at /home/william/Code/jhbuild/checkout/glib/gobject/gclosure.c:1024
#27 0x00007ffff62b20a8 in _g_closure_invoke_va (closure=0x5555557f8350, return_value=0x7fffffffc7c0, instance=0x555555ad28b0, args=0x7fffffffc870, n_params=1, param_types=0x5555557f84c0)
    at /home/william/Code/jhbuild/checkout/glib/gobject/gclosure.c:867
#28 0x00007ffff62ce98e in g_signal_emit_valist (instance=0x555555ad28b0, signal_id=104, detail=0, var_args=0x7fffffffc870) at /home/william/Code/jhbuild/checkout/glib/gobject/gsignal.c:3300
#29 0x00007ffff62cfba9 in g_signal_emit (instance=0x555555ad28b0, signal_id=104, detail=0) at /home/william/Code/jhbuild/checkout/glib/gobject/gsignal.c:3447
#30 0x00007ffff7506781 in gtk_widget_event_internal (widget=0x555555ad28b0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkwidget.c:7723
#31 0x00007ffff7505b43 in gtk_widget_event (widget=0x555555ad28b0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkwidget.c:7293
#32 0x00007ffff752ab82 in gtk_window_propagate_key_event (window=0x555555a102a0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkwindow.c:7977
#33 0x00007ffff752ac5e in gtk_window_key_press_event (widget=0x555555a102a0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkwindow.c:8010
#34 0x00007ffff732b427 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x5555557f8350, return_value=0x7fffffffcdd0, instance=0x555555a102a0, args=0x7fffffffce80,
    marshal_data=0x7ffff752ac0a <gtk_window_key_press_event>, n_params=1, param_types=0x5555557f84c0) at gtkmarshalers.c:131
#35 0x00007ffff62b2526 in g_type_class_meta_marshalv (closure=0x5555557f8350, return_value=0x7fffffffcdd0, instance=0x555555a102a0, args=0x7fffffffce80, marshal_data=0x1b0, n_params=1,
    param_types=0x5555557f84c0) at /home/william/Code/jhbuild/checkout/glib/gobject/gclosure.c:1024
#36 0x00007ffff62b20a8 in _g_closure_invoke_va (closure=0x5555557f8350, return_value=0x7fffffffcdd0, instance=0x555555a102a0, args=0x7fffffffce80, n_params=1, param_types=0x5555557f84c0)
    at /home/william/Code/jhbuild/checkout/glib/gobject/gclosure.c:867
#37 0x00007ffff62ce98e in g_signal_emit_valist (instance=0x555555a102a0, signal_id=104, detail=0, var_args=0x7fffffffce80) at /home/william/Code/jhbuild/checkout/glib/gobject/gsignal.c:3300
#38 0x00007ffff62cfba9 in g_signal_emit (instance=0x555555a102a0, signal_id=104, detail=0) at /home/william/Code/jhbuild/checkout/glib/gobject/gsignal.c:3447
#39 0x00007ffff7506781 in gtk_widget_event_internal (widget=0x555555a102a0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkwidget.c:7723
#40 0x00007ffff7505b43 in gtk_widget_event (widget=0x555555a102a0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkwidget.c:7293
#41 0x00007ffff7329c8f in propagate_event (widget=0x555555a102a0, event=0x7fffdc002810, captured=0, topmost=0x0) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkmain.c:2661
#42 0x00007ffff7329da7 in gtk_propagate_event (widget=0x555555a102a0, event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkmain.c:2705
#43 0x00007ffff73289bf in gtk_main_do_event (event=0x7fffdc002810) at /home/william/Code/jhbuild/checkout/gtk+-3/gtk/gtkmain.c:1901
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) f 7
#7 0x00007ffff7b7137a in gdk_mir_display_convert_selection (display=0x5555557ad010, requestor=0x555556235af0, selection=0x45, target=0x52, time=34494073)
    at /home/william/Code/jhbuild/checkout/gtk+-3/gdk/mir/gdkmirdisplay.c:845
845 persistent_id = mir_surface_request_persistent_id_sync (surface);
(gdb) l
840 surface = gdk_mir_window_get_mir_surface (mir_display->focused_window);
841
842 if (!surface)
843 return;
844
845 persistent_id = mir_surface_request_persistent_id_sync (surface);
846
847 if (!persistent_id)
848 return;
849
(gdb) p mir_surface_is_valid(surface)
[Thread 0x7fffe49d4700 (LWP 31881) exited]
$1 = true
(gdb) p surface
$2 = (MirSurface *) 0x7fffd8002f90

Related branches

Changed in mir:
milestone: none → 0.26.1
assignee: nobody → Cemil Azizoglu (cemil-azizoglu)
importance: Undecided → Critical
status: New → Triaged
summary: - mir_surface_request_persistent_id_sync seg faults
+ mir_surface_request_persistent_id_sync seg faults when called twice
summary: - mir_surface_request_persistent_id_sync seg faults when called twice
+ mir_window_request_persistent_id_sync seg faults when called twice
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Fix committed to lp:mir/0.26 at revision 4009, scheduled for release in Mir 0.26.1

Changed in mir:
milestone: 0.26.1 → 1.0.0
status: Triaged → In Progress
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 1.0.0

Changed in mir:
status: In Progress → Fix Committed
Changed in mir (Ubuntu):
status: New → Triaged
importance: Undecided → Critical
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.26.1+17.04.20170209.1-0ubuntu1

---------------
mir (0.26.1+17.04.20170209.1-0ubuntu1) zesty; urgency=medium

  * New upstream release 0.26.1 (https://launchpad.net/mir/+milestone/0.26.1)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI unchanged at 43
      . mircommon ABI unchanged at 7
      . mirplatform ABI bumped to 15
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 12
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI unchanged at 6
      . mircore ABI unchanged at 1
    - Enhancements:
      . Support for MirBuffer API that allows for better management of
        hardware/software buffers.
      . Support for MirPresentationChain API that allows better control
        over {de}queueing of individual buffers {from}to the server.
      . Interim support for MirRenderSurface API that provides a unit of
        renderable for lower level content such as MirBufferStreams and
        MirPresentationChains, etc.. MirRenderSurface API is marked
        deprecated as it (and the relevant entry points) will be renamed to
        MirSurface before general availability. It will initially be used for
        revamping support for EGL drivers.
      . Synchronous version of mir_prompt_session_new_fds_for_prompt_providers()
        API (mir_prompt_session_new_fds_for_prompt_providers_sync()) added for
        convenience.
      . Better name for MirPersistentId-->MirWindowId. MirPersistentId has now
        been deprecated.
    - Bugs fixed:
      . [regression] Unity8 stutters constantly (like half frame rate).
        (LP: #1661128)
      . mir 0.26 - spinner loading animation, minimize, maximize too fast.
        (LP: #1661072)
      . [regression] Nested server segfaults or rapidly logs exceptions when a
        fullscreen client starts [in mir_presentation_chain_set_dropping_mode
        ... std::exception::what: Operation not permitted] (LP: #1661508)
      . mir_window_request_persistent_id_sync seg faults when called twice.
        (LP: #1661704)
      . [regression] Windowed clients of nested servers are all black.
        (LP: #1661521)
      . Mir graphics platform ABI broke in series 0.26 but sonames never
        changed (LP: #1662455)
      . Fixes for 0.26 changelog.
      . [regression] mirscreencast hangs during screencast creation. (LP: #1662997)
      . libmirclient-dev missing build dependency on libmircore-dev. (LP: #1662942)
      . mir_window_spec_set_cursor_name() doesn't trigger
        mir::scene::SurfaceObserver::cursor_image_set_to. (LP: #1663197)
      . [regression] Software clients of nested servers are all black in Mir 0.25.0
        and later. (LP: #1663062)

 -- Cemil Azizoglu <email address hidden> Thu, 09 Feb 2017 21:46:32 +0000

Changed in mir (Ubuntu):
status: Triaged → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.