#906799 gnome-control-center: crashes or shows blank window when started outside GNOME

Package:
gnome-control-center
Source:
gnome-control-center
Description:
utilities to configure the GNOME desktop
Submitter:
Simon McVittie
Date:
2018-11-26 11:18:03 UTC
Severity:
normal
#906799#5
Date:
2018-08-21 07:16:25 UTC
From:
To:
While trying to reproduce #906750 I found that gnome-control-center from
experimental doesn't start in a qemu VM, possibly because the VM does not
have any wifi devices:

user@host:~$ DISPLAY=:0 gdb gnome-control-center
...
ERROR:../shell/cc-shell-model.c:458:cc_shell_model_set_panel_visibility: assertion failed: (valid)

Thread 1 "gnome-control-c" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff1a622f1 in __GI_abort () at abort.c:79
#2  0x00007ffff7729fa5 in g_assertion_message () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff772a00a in g_assertion_message_expr () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00005555556a2af1 in cc_shell_model_set_panel_visibility (self=0x555555efbd60,
    id=id@entry=0x5555556c6ba5 "wifi", visibility=visibility@entry=CC_PANEL_VISIBLE_IN_SEARCH)
    at ../shell/cc-shell-model.c:458
#5  0x0000555555666254 in update_panel_visibility (client=<optimized out>) at ../panels/network/cc-wifi-panel.c:112
#6  0x0000555555666ebe in cc_wifi_panel_static_init_func () at ../panels/network/cc-wifi-panel.c:141
#7  0x00005555555abbb3 in cc_panel_loader_fill_model (model=0x555555efbd60) at ../shell/cc-panel-loader.c:214
#8  0x00005555555afcc8 in setup_model (shell=0x5555560e23b0) at ../shell/cc-shell-model.h:31
#9  cc_window_constructed (object=0x5555560e23b0) at ../shell/cc-window.c:767
#10 0x00007ffff79e2760 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff79e4420 in g_object_new_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff79e4799 in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00005555555b036c in cc_window_new (application=0x555555a6e320, model=model@entry=0x555555efbd60)
    at ../shell/cc-window.c:885
#14 0x00005555555aa62a in cc_application_startup (application=0x555555a6e320) at ../shell/cc-application.c:265
#15 0x00007ffff79dcf6d in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff79efe0e in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff79f83f5 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffff79f8e0f in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007ffff7cc30a2 in g_application_register () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#20 0x00007ffff7cc38b7 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#21 0x00007ffff7cc3c46 in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#22 0x00005555555a9c51 in main (argc=<optimized out>, argv=<optimized out>) at ../shell/main.c:57

The failing assertion is:

  /* If we don't find any panel with the given id, we'll iterate until
   * valid == FALSE, so we can use this variable to determine if the
   * panel was found or not. It is a programming error to try to set
   * the visibility of a non-existant panel.
   */
  g_assert (valid);

but perhaps the wifi panel doesn't always appear?

This does not seem to be the same crash as #906750 - installing
avahi-daemon, or installing gnome-core and all of gnome-control-center's
Recommends, does not fix it.

    smcv

#906799#10
Date:
2018-08-21 08:33:58 UTC
From:
To:
Control: retitle -1 gnome-control-center: crashes or shows blank window when started outside GNOME
Control: severity -1 normal
Control: found -1 1:3.28.2-1
to reproduce a crash that happens when Recommends were not installed, I
launched it in openbox or from a ssh session), and it respects OnlyShowIn
when deciding which panels to show. If the desktop environment is neither
GNOME nor Unity, then it doesn't show any, but then (in the experimental
version) manipulating the visibility of the wifi panel assumes that panel
is available and causes a crash.

The version in unstable doesn't crash, but it also doesn't show any
panels.

Mitigation: the menu entry for gnome-control-center itself won't show
in a non-GNOME session either (due to its use of OnlyShowIn), so this
is not something that is really supported or meant to work.

A possible workaround would be: if any panels would be shown on the
current desktop environment, proceed with that subset of panels, but if
no panels would be shown, show all of them (or those that would show in
a GNOME session) instead.

    smcv

#906799#21
Date:
2018-11-26 11:04:25 UTC
From:
To:
Dear Maintainer,

   * What led up to the situation?
     Upgrading the system
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
     apt -u dist-upgrade
   * What was the outcome of this action?
     gnome-control-center won't start
   * What outcome did you expect instead?
     Working gnome-control-center

I can reproduce this bug in the current Debian/testing. gnome-control-center
fails to load as root and as normal user.

Error running as root:

g6# gnome-control-center
**
ERROR:../shell/cc-shell-model.c:458:cc_shell_model_set_panel_visibility:
assertion failed: (valid)
zsh: abort (core dumped)  gnome-control-center

Error running as user:

(gst-plugin-scanner:18923): GLib-GObject-WARNING **: 11:52:38.153: cannot
register existing type 'GstAggregator'

(gst-plugin-scanner:18923): GLib-CRITICAL **: 11:52:38.154: g_once_init_leave:
assertion 'result != 0' failed

(gst-plugin-scanner:18923): GLib-GObject-CRITICAL **: 11:52:38.154:
g_type_register_static: assertion 'parent_type > 0' failed

(gst-plugin-scanner:18923): GLib-GObject-CRITICAL **: 11:52:38.154:
g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE
(instance_type)' failed

(gst-plugin-scanner:18923): GLib-CRITICAL **: 11:52:38.154: g_once_init_leave:
assertion 'result != 0' failed

..and so on.

I assume it has to issue with gstreamer somehow. I already deinstalled the old
gstreamer 0.10 leftovers but it did not resolve the problem.

Inside a gnome-session gnome-control-center also won't load. I have tested this
with GNOME session and Enlightenment 0.22 from Debian/testing.

To this message I have attached a small screencast to illustrate the problem.

Thank you kindly for your reply.

Yours Sincerely,

Adrian Immanuel Kiess

#906799#26
Date:
2018-11-26 11:14:36 UTC
From:
To:
I have attached the screencast to this message. It failed to add in the
last mail.

Adrian Immanuel Kiess