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