GNU bug report logs - #37331
27.0.50; segfault when starting from pdump and using dbus

Previous Next

Package: emacs;

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


Message #13 received at 37331-done <at> debbugs.gnu.org (full text, mbox):

From: Leonard Lausen <leonard <at> lausen.nl>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: , 37331-done <at> debbugs.gnu.org
Subject: Re: 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 <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 282 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.