[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#37331: 27.0.50; segfault when starting from pdump and using dbus
From: |
Leonard Lausen |
Subject: |
bug#37331: 27.0.50; segfault when starting from pdump and using dbus |
Date: |
Fri, 13 Sep 2019 09:25:46 +0000 |
Thank you for looking into the problem! Your fix indeed prevents the
crash. Unfortunately there seems to be an issue with dbus sessions. For
exmaple, notmuch-search from notmuch.el or
fcitx--prefix-keys-polling-function error out with
(dbus-error "No connection to bus" :session)
when loading a pdumped session.
Would you like me to prepare a minimal reproducible example? Should I
open a new bug? Above report is based on the emacs config at
https://github.com/leezu/dotfiles/tree/master/emacs which uses
spacemacs.
Best regards
Leonard
Paul Eggert <eggert@cs.ucla.edu> writes:
> Thanks for reporting the problem. I reproduced it and installed the attached
> patch, which should fix it.
> From cc4da5b17e9e9aa522a0bd77dc341cd14ec9ea43 Mon Sep 17 00:00:00 2001
> From: Paul Eggert <eggert@cs.ucla.edu>
> Date: Wed, 11 Sep 2019 10:19:07 -0700
> Subject: [PATCH] Reset dbus registered buses on dump load
>
> Problem reported by Leonard Lausen (Bug#37331).
> * src/dbusbind.c: Include pdumper.h.
> (syms_of_dbusbind_for_pdumper):
> New function, to reset the registered buses.
> (syms_of_dbusbind): Use it, fixing a TODO.
> ---
> src/dbusbind.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/src/dbusbind.c b/src/dbusbind.c
> index 7f4c8717f4..de67dc94f9 100644
> --- a/src/dbusbind.c
> +++ b/src/dbusbind.c
> @@ -26,6 +26,7 @@
> #include "lisp.h"
> #include "termhooks.h"
> #include "keyboard.h"
> +#include "pdumper.h"
> #include "process.h"
>
> #ifndef DBUS_NUM_MESSAGE_TYPES
> @@ -1681,6 +1682,12 @@ init_dbusbind (void)
> xputenv ("DBUS_FATAL_WARNINGS=0");
> }
>
> +static void
> +syms_of_dbusbind_for_pdumper (void)
> +{
> + xd_registered_buses = Qnil;
> +}
> +
> void
> syms_of_dbusbind (void)
> {
> @@ -1829,13 +1836,10 @@ syms_of_dbusbind (void)
> #endif
>
> /* Initialize internal objects. */
> - xd_registered_buses = Qnil;
> + pdumper_do_now_and_after_load (syms_of_dbusbind_for_pdumper);
> staticpro (&xd_registered_buses);
>
> - // TODO: reset buses on dump load
> -
> Fprovide (intern_c_string ("dbusbind"), Qnil);
> -
> }
>
> #endif /* HAVE_DBUS */
> --
> 2.17.1