GNU bug report logs - #66151
29.1.50; daemon crashing after X forwarding disconnects

Previous Next

Package: emacs;

Reported by: Benjamin Schwehn <bschwehn <at> gmail.com>

Date: Fri, 22 Sep 2023 10:23:02 UTC

Severity: normal

Found in version 29.1.50

Done: Po Lu <luangruo <at> yahoo.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 66151 <at> debbugs.gnu.org, georgepanagopo <at> gmail.com
Subject: bug#66151: 29.1.50; daemon crashing after X forwarding disconnects
Date: Fri, 19 Apr 2024 14:15:39 +0300
> From: Po Lu <luangruo <at> yahoo.com>
> Cc: George P <georgepanagopo <at> gmail.com>,  66151 <at> debbugs.gnu.org
> Date: Fri, 19 Apr 2024 17:07:19 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > Po Lu, how should we go about making some progress here?
> 
> Thanks.  My hands are quite full and will remain so into the next week,
> but if this crude attempt to sidestep the crash works, it should suffice
> until I establish why dead frames are still being retained in
> Vfontset_table.  George?
> 
> diff --git a/src/fontset.c b/src/fontset.c
> index d27fa22015e..d969e5f1180 100644
> --- a/src/fontset.c
> +++ b/src/fontset.c
> @@ -1366,10 +1366,11 @@ free_realized_fontsets (Lisp_Object base)
>        if (CHAR_TABLE_P (this) && EQ (FONTSET_BASE (this), base))
>  	{
>  	  Fclear_face_cache (Qt);
> -	  /* This is in case some Lisp calls this function and then
> -	     proceeds with calling some other function, like font-at,
> -	     which needs the basic faces.  */
> -	  recompute_basic_faces (XFRAME (FONTSET_FRAME (this)));
> +	  if (!FRAME_LIVE_P (XFRAME (FONTSET_FRAME (this))))
> +	    /* This is in case some Lisp calls this function and then
> +	       proceeds with calling some other function, like font-at,
> +	       which needs the basic faces.  */
> +	    recompute_basic_faces (XFRAME (FONTSET_FRAME (this)));
>  	  break;
>  	}
>      }

Are you sure it should be !FRAME_LIVE_P ?  Why would we condition the
call to recompute_basic_faces on the fact that the relevant frame is
no longer alive?  What am I missing?




This bug report was last modified 1 year and 14 days ago.

Previous Next


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