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