Emacs 31.1 Segmentation fault upon face inheritance cycle

"R. Diez" <[email protected]>
Newsgroups gmane.emacs.help
Message-ID <[email protected]>
Hi all:

I just compiled the shiny new Emacs 31.1 from sources on my oldish but trusty PC, where I have built and used many Emacs versions in the past years, and I got a segmentation fault on start-up:

Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
0x0000555555826ef7 in make_lisp_symbol_internal (sym=<error reading variable: Cannot access memory at address 0x7fffff66fff0>) at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/lisp.h:1133
1133    {
(gdb) bt
#0  0x0000555555826ef7 in make_lisp_symbol_internalPython Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x7fffff66fff0
  (sym=#1  0x0000555555826f4b in builtin_lisp_symbol (index=0)
     at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/lisp.h:1154
#2  0x0000555555827c66 in CHECK_LIST_END (x=0x0, y=0x0) at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/lisp.h:3334
#3  0x000055555582e24e in Fassq (key=0x1f005e0, alist=0x0) at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/fns.c:1971
#4  0x0000555555830899 in Fget (symbol=0x1f005e0, propname=0x8460) at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/fns.c:2654
#5  0x00005555556d19fe in resolve_face_name (face_name=0x1f005e0, signal_p=false) at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/xfaces.c:2031
#6  0x00005555556d1ca4 in get_lface_attributes (w=0x0, f=0x555555c16168, face_name=0x1f005e0, attrs=0x7fffff6701d0, signal_p=false, named_merge_points=0x0)
     at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/xfaces.c:2132
#7  0x00005555556d2dca in face_inheritance_cycle (f=0x555555c16168, face=0x1f005e0, child=0x1f00610)
     at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/xfaces.c:2479

#8  0x00005555556d2edd in face_inheritance_cycle (f=0x555555c16168, face=0x57ba10, child=0x1f00610)
     at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/xfaces.c:2490
#9  0x00005555556d2edd in face_inheritance_cycle (f=0x555555c16168, face=0x1f005e0, child=0x1f00610)
     at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/xfaces.c:2490

#10 0x00005555556d2edd in face_inheritance_cycle (f=0x555555c16168, face=0x57ba10, child=0x1f00610)
     at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/xfaces.c:2490
#11 0x00005555556d2edd in face_inheritance_cycle (f=0x555555c16168, face=0x1f005e0, child=0x1f00610)
     at /home/rdiez/rdiez/LocalSoftware/Emacs/emacs-31.1-src/src/xfaces.c:2490

Note that #10 and #11 are identical to #8 and #9. The backtrace repeats forever with that repetition pattern.

So I ran Emacs with --debug-init, and, instead of crashing, I got this:

Debugger entered--Lisp error: (error "Face inheritance results in inheritance cycle" tab-line-tab-current)
   internal-set-lisp-face-attribute(tab-line-tab :inherit tab-line-tab-current 0)
   set-face-attribute(tab-line-tab nil :inherit tab-line-tab-current)

That checks out, as my start-up file has the following code:

   ; Active tab in current window.
   (set-face-attribute 'tab-line-tab-current nil
     :background "medium spring green")

   ; Active tab in another window.
   (set-face-attribute 'tab-line-tab nil
     :inherit 'tab-line-tab-current)

I do not know anymore where I got that code from, and I do not really understand it, but I am guessing now that the ":inherit" bit is a stupid thing to do, right?

But Emacs shouldn't really crash, even if I made a mistake, correct?

Thanks in advance,
   rdiez
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.