GNU bug report logs -
#37331
27.0.50; segfault when starting from pdump and using dbus
Previous Next
Reported by: Leonard Lausen <leonard <at> lausen.nl>
Date: Sat, 7 Sep 2019 15:50:02 UTC
Severity: normal
Tags: confirmed, moreinfo
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
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 <at> 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 <at> 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
This bug report was last modified 3 years and 281 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.