Bug#926212: gnome-shell crashed (segfault)

Gunter Grodotzki guenter at grodotzki.com
Sat Apr 6 08:40:40 BST 2019


Thanks Bernhard for the help. I am only realising now that even though I am running “testing” that the bug is most likely due to upstream.

> On 05 Apr 2019, at 22:01, Bernhard Übelacker <bernhardu at mailbox.org> wrote:
> 
> Hello Guenter Grodotzki,
> I just tried to help triage that issue.
> 
> For some reason you just added the segfault line.
> I assume there was one line following starting with "Code:".
> Please add that line too when submitting bugs.
> 
> As this information is still kind of small, you might consider
> to install a coredump collector like systemd-coredump.
> That way you could list crashes of the current boot by:
>    coredumpctl list
> And some more information is entered into journal that would
> help a lot to triage such crashes ("Stack trace of thread...".
>    journalctl --no-pager
> 
> Even better would be if you could install the debug symbol
> packages e.g. gnome-shell-dbgsym like described in [1].
> Then following commands should print a backtrace
> with source line information.
> 
> 
> Nevertheless, I tried if that little information brings
> us somewhere and I think it leads into function
> shell_app_dispose. There, I assume, we reach line 1485,
> unfortunately dereferencing a null pointer
> in app->running_state->windows.
> 
> 
> There are some upstream bugs [2], which point to that line.
> Unfortunately it looks like there is no fix yet commited.
> 
> 
> But, if I am right, something like this could
> help already (untested)?
> 
>       while (app->running_state)
> -        _shell_app_remove_window (app, app->running_state->windows->data);
> +        if (app->running_state->windows) _shell_app_remove_window (app, app->running_state->windows->data);
> 
>       /* We should have been transitioned when we removed all of our windows */
> 
> 
> Kind regards,
> Bernhard
> 
> 
> [1] https://wiki.debian.org/HowToGetABacktrace#Installing_the_debugging_symbols
> [2] https://gitlab.gnome.org/GNOME/gnome-shell/issues/590
>    https://gitlab.gnome.org/GNOME/gnome-shell/issues/766
>    https://gitlab.gnome.org/GNOME/gnome-shell/issues/750
>    https://gitlab.gnome.org/GNOME/gnome-shell/issues/918
>    https://gitlab.gnome.org/GNOME/gnome-shell/issues/822
>    https://bugzilla.redhat.com/show_bug.cgi?id=1654420#c22
> 
> 
> (gdb) list shell-app.c:1477,1492
> 1477    static void
> 1478    shell_app_dispose (GObject *object)
> 1479    {
> 1480      ShellApp *app = SHELL_APP (object);
> 1481
> 1482      g_clear_object (&app->info);
> 1483
> 1484      while (app->running_state)
> 1485        _shell_app_remove_window (app, app->running_state->windows->data);
> 1486
> 1487      /* We should have been transitioned when we removed all of our windows */
> 1488      g_assert (app->state == SHELL_APP_STATE_STOPPED);
> 1489      g_assert (app->running_state == NULL);
> 1490
> 1491      G_OBJECT_CLASS(shell_app_parent_class)->dispose (object);
> 1492    }
> <debugging.txt>



More information about the pkg-gnome-maintainers mailing list