Public bug reported:

Taking HP laptop and dock available with me for example, laptop has NVIDIA 
discrete gpu and proprietary driver installed -
  1. connect two DP-displays to dock
  2. attach system on dock and make sure all 3 displays are light up
  3. undock

You can observe blank screen on laptop's flat panel. After some
investigation it has been found that unity-setting-daemon has grabbed
X-server and waiting for response on error dialog box, this is blocking
other X-clients like compiz which might be also doing something in
response of un-dock event. See following gdb log -

Breakpoint 1, XGrabServer (dpy=0x2193550) at GrServer.c:36
36              LockDisplay(dpy);
#0  XGrabServer (dpy=0x2193550) at GrServer.c:36
#1  0x00007f387a918a49 in gdk_x11_display_grab () from 
/usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#2  0x00007f387cbf0a42 in gnome_rr_screen_refresh () from 
/usr/lib/libgnome-desktop-3.so.7
#3  0x00007f386191359b in handle_fn_f7 (timestamp=0, mgr=0x2187d00) at 
gsd-xrandr-manager.c:1391
#4  gsd_xrandr_manager_2_video_mode_switch (error=0x0, timestamp=0, 
manager=0x2187d00) at gsd-xrandr-manager.c:785
#5  handle_method_call_xrandr_2 (invocation=0x7f3868003240, 
parameters=<optimized out>, method_name=<optimized out>, manager=0x2187d00) at 
gsd-xrandr-manager.c:2567
#6  handle_method_call (connection=<optimized out>, sender=<optimized out>, 
object_path=<optimized out>, interface_name=<optimized out>, 
method_name=<optimized out>, parameters=<optimized out>, 
invocation=0x7f3868003240, user_data=0x2187d00) at gsd-xrandr-manager.c:2596
#7  0x00007f387c21a301 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#8  0x00007f387bc41ce5 in g_main_context_dispatch () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f387bc42048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f387bc4230a in g_main_loop_run () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f387c665e25 in gtk_main () from 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x0000000000403714 in main ()

Program received signal SIGINT, Interrupt.
0x00007f387b70384d in poll () at ../sysdeps/unix/syscall-template.S:81
81      ../sysdeps/unix/syscall-template.S: No such file or directory.
#0  0x00007f387b70384d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f387bc41fe4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f387bc4230a in g_main_loop_run () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f387c5f6970 in gtk_dialog_run () from 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#4  0x00007f3861911d24 in error_message (primary_text=<optimized out>, 
error_to_display=<optimized out>, secondary_text=0x0, mgr=<optimized out>) at 
gsd-xrandr-manager.c:1361
#5  0x00007f3861911f35 in apply_configuration (manager=manager@entry=0x2187d00, 
config=config@entry=0x25580e0, timestamp=timestamp@entry=1158092, 
show_error=show_error@entry=1, save_configuration=save_configuration@entry=0) 
at gsd-xrandr-manager.c:528
#6  0x00007f3861912e11 in auto_configure_outputs (timestamp=1158092, 
manager=0x2187d00) at gsd-xrandr-manager.c:1737
#7  use_stored_configuration_or_auto_configure_outputs 
(manager=manager@entry=0x2187d00, timestamp=1158092) at 
gsd-xrandr-manager.c:1779
#8  0x00007f3861913cdd in on_randr_event (screen=0x21fb760, data=<optimized 
out>) at gsd-xrandr-manager.c:1837
#9  0x00007f387bf113b8 in g_closure_invoke () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007f387bf22d3d in ?? () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007f387bf2aa29 in g_signal_emit_valist () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007f387bf2ace2 in g_signal_emit () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007f387cbf0964 in ?? () from /usr/lib/libgnome-desktop-3.so.7
#14 0x00007f387cbf0a59 in gnome_rr_screen_refresh () from 
/usr/lib/libgnome-desktop-3.so.7
#15 0x00007f386191359b in handle_fn_f7 (timestamp=0, mgr=0x2187d00) at 
gsd-xrandr-manager.c:1391
#16 gsd_xrandr_manager_2_video_mode_switch (error=0x0, timestamp=0, 
manager=0x2187d00) at gsd-xrandr-manager.c:785
#17 handle_method_call_xrandr_2 (invocation=0x7f3868003240, 
parameters=<optimized out>, method_name=<optimized out>, manager=0x2187d00) at 
gsd-xrandr-manager.c:2567
#18 handle_method_call (connection=<optimized out>, sender=<optimized out>, 
object_path=<optimized out>, interface_name=<optimized out>, 
method_name=<optimized out>, parameters=<optimized out>, 
invocation=0x7f3868003240, user_data=0x2187d00) at gsd-xrandr-manager.c:2596
#19 0x00007f387c21a301 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#20 0x00007f387bc41ce5 in g_main_context_dispatch () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f387bc42048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f387bc4230a in g_main_loop_run () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007f387c665e25 in gtk_main () from 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x0000000000403714 in main ()
Continuing.

Applying following patch to unity-setting-daemon fixing this issue -

=== modified file 'plugins/xrandr/gsd-xrandr-manager.c'
--- plugins/xrandr/gsd-xrandr-manager.c 2016-05-20 16:50:05 +0000
+++ plugins/xrandr/gsd-xrandr-manager.c 2017-05-26 07:01:30 +0000
@@ -1355,9 +1355,8 @@
                                          "%s", primary_text);
         gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), 
"%s",
                                                   error_to_display ? 
error_to_display->message : secondary_text);
-
-        gtk_dialog_run (GTK_DIALOG (dialog));
-        gtk_widget_destroy (dialog);
+        g_signal_connect_swapped (dialog, "response", G_CALLBACK 
(gtk_widget_destroy), dialog);
+        gtk_widget_show_all (dialog);
 }
 
 static void

** Affects: unity-settings-daemon (Ubuntu)
     Importance: Undecided
     Assignee: Nikhil Mahale (nmahale)
         Status: New

** Changed in: unity-settings-daemon (Ubuntu)
     Assignee: (unassigned) => Nikhil Mahale (nmahale)

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to unity-settings-daemon in Ubuntu.
https://bugs.launchpad.net/bugs/1693715

Title:
  Laptop flat panel show blank screen after undocking with 2 DP displays
  on dock

Status in unity-settings-daemon package in Ubuntu:
  New

Bug description:
  Taking HP laptop and dock available with me for example, laptop has NVIDIA 
discrete gpu and proprietary driver installed -
    1. connect two DP-displays to dock
    2. attach system on dock and make sure all 3 displays are light up
    3. undock

  You can observe blank screen on laptop's flat panel. After some
  investigation it has been found that unity-setting-daemon has grabbed
  X-server and waiting for response on error dialog box, this is
  blocking other X-clients like compiz which might be also doing
  something in response of un-dock event. See following gdb log -

  Breakpoint 1, XGrabServer (dpy=0x2193550) at GrServer.c:36
  36              LockDisplay(dpy);
  #0  XGrabServer (dpy=0x2193550) at GrServer.c:36
  #1  0x00007f387a918a49 in gdk_x11_display_grab () from 
/usr/lib/x86_64-linux-gnu/libgdk-3.so.0
  #2  0x00007f387cbf0a42 in gnome_rr_screen_refresh () from 
/usr/lib/libgnome-desktop-3.so.7
  #3  0x00007f386191359b in handle_fn_f7 (timestamp=0, mgr=0x2187d00) at 
gsd-xrandr-manager.c:1391
  #4  gsd_xrandr_manager_2_video_mode_switch (error=0x0, timestamp=0, 
manager=0x2187d00) at gsd-xrandr-manager.c:785
  #5  handle_method_call_xrandr_2 (invocation=0x7f3868003240, 
parameters=<optimized out>, method_name=<optimized out>, manager=0x2187d00) at 
gsd-xrandr-manager.c:2567
  #6  handle_method_call (connection=<optimized out>, sender=<optimized out>, 
object_path=<optimized out>, interface_name=<optimized out>, 
method_name=<optimized out>, parameters=<optimized out>, 
invocation=0x7f3868003240, user_data=0x2187d00) at gsd-xrandr-manager.c:2596
  #7  0x00007f387c21a301 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
  #8  0x00007f387bc41ce5 in g_main_context_dispatch () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #9  0x00007f387bc42048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  #10 0x00007f387bc4230a in g_main_loop_run () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #11 0x00007f387c665e25 in gtk_main () from 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #12 0x0000000000403714 in main ()

  Program received signal SIGINT, Interrupt.
  0x00007f387b70384d in poll () at ../sysdeps/unix/syscall-template.S:81
  81      ../sysdeps/unix/syscall-template.S: No such file or directory.
  #0  0x00007f387b70384d in poll () at ../sysdeps/unix/syscall-template.S:81
  #1  0x00007f387bc41fe4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  #2  0x00007f387bc4230a in g_main_loop_run () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #3  0x00007f387c5f6970 in gtk_dialog_run () from 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #4  0x00007f3861911d24 in error_message (primary_text=<optimized out>, 
error_to_display=<optimized out>, secondary_text=0x0, mgr=<optimized out>) at 
gsd-xrandr-manager.c:1361
  #5  0x00007f3861911f35 in apply_configuration 
(manager=manager@entry=0x2187d00, config=config@entry=0x25580e0, 
timestamp=timestamp@entry=1158092, show_error=show_error@entry=1, 
save_configuration=save_configuration@entry=0) at gsd-xrandr-manager.c:528
  #6  0x00007f3861912e11 in auto_configure_outputs (timestamp=1158092, 
manager=0x2187d00) at gsd-xrandr-manager.c:1737
  #7  use_stored_configuration_or_auto_configure_outputs 
(manager=manager@entry=0x2187d00, timestamp=1158092) at 
gsd-xrandr-manager.c:1779
  #8  0x00007f3861913cdd in on_randr_event (screen=0x21fb760, data=<optimized 
out>) at gsd-xrandr-manager.c:1837
  #9  0x00007f387bf113b8 in g_closure_invoke () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  #10 0x00007f387bf22d3d in ?? () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  #11 0x00007f387bf2aa29 in g_signal_emit_valist () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  #12 0x00007f387bf2ace2 in g_signal_emit () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  #13 0x00007f387cbf0964 in ?? () from /usr/lib/libgnome-desktop-3.so.7
  #14 0x00007f387cbf0a59 in gnome_rr_screen_refresh () from 
/usr/lib/libgnome-desktop-3.so.7
  #15 0x00007f386191359b in handle_fn_f7 (timestamp=0, mgr=0x2187d00) at 
gsd-xrandr-manager.c:1391
  #16 gsd_xrandr_manager_2_video_mode_switch (error=0x0, timestamp=0, 
manager=0x2187d00) at gsd-xrandr-manager.c:785
  #17 handle_method_call_xrandr_2 (invocation=0x7f3868003240, 
parameters=<optimized out>, method_name=<optimized out>, manager=0x2187d00) at 
gsd-xrandr-manager.c:2567
  #18 handle_method_call (connection=<optimized out>, sender=<optimized out>, 
object_path=<optimized out>, interface_name=<optimized out>, 
method_name=<optimized out>, parameters=<optimized out>, 
invocation=0x7f3868003240, user_data=0x2187d00) at gsd-xrandr-manager.c:2596
  #19 0x00007f387c21a301 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
  #20 0x00007f387bc41ce5 in g_main_context_dispatch () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #21 0x00007f387bc42048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  #22 0x00007f387bc4230a in g_main_loop_run () from 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
  #23 0x00007f387c665e25 in gtk_main () from 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  #24 0x0000000000403714 in main ()
  Continuing.

  Applying following patch to unity-setting-daemon fixing this issue -

  === modified file 'plugins/xrandr/gsd-xrandr-manager.c'
  --- plugins/xrandr/gsd-xrandr-manager.c 2016-05-20 16:50:05 +0000
  +++ plugins/xrandr/gsd-xrandr-manager.c 2017-05-26 07:01:30 +0000
  @@ -1355,9 +1355,8 @@
                                            "%s", primary_text);
           gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG 
(dialog), "%s",
                                                     error_to_display ? 
error_to_display->message : secondary_text);
  -
  -        gtk_dialog_run (GTK_DIALOG (dialog));
  -        gtk_widget_destroy (dialog);
  +        g_signal_connect_swapped (dialog, "response", G_CALLBACK 
(gtk_widget_destroy), dialog);
  +        gtk_widget_show_all (dialog);
   }
   
   static void

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unity-settings-daemon/+bug/1693715/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to