Package: emacs;
Reported by: Gregor Zattler <telegraph <at> gmx.net>
Date: Thu, 6 Feb 2025 12:51:01 UTC
Severity: normal
Found in version 31.0.50
Done: Pip Cet <pipcet <at> protonmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Pip Cet <pipcet <at> protonmail.com> Cc: tracker <at> debbugs.gnu.org Subject: bug#76091: closed (31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a)) Date: Fri, 07 Feb 2025 19:44:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 07 Feb 2025 19:43:18 +0000 with message-id <878qqhczid.fsf <at> protonmail.com> and subject line Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) has caused the debbugs.gnu.org bug report #76091, regarding 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 76091: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76091 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Gregor Zattler <telegraph <at> gmx.net> To: bug-gnu-emacs <at> gnu.org Subject: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Thu, 06 Feb 2025 13:49:30 +0100Dear Emacs developers, I don't know if this failed assertion is due to using MPS as GC. I played along with pdf-tools and org-noter when it happened. This time I built with a current checkout of feature/igc. GDB output even further below. The crashed session is still in GDB. HTH, Gregor In GNU Emacs 31.0.50 (build 3, x86_64-pc-linux-gnu, cairo version 1.16.0) of 2025-02-06 built on no Repository revision: aa915b0c87e42444ee5426744df18c3b15ac0cf5 Repository branch: feature/igc Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 System Description: Debian GNU/Linux 12 (bookworm) Configured using: 'configure --infodir=/usr/share/info/emacs --with-json --with-file-notification=yes --with-libsystemd --with-cairo --with-x=yes --with-x-toolkit=no --without-toolkit-scroll-bars --without-gsettings --enable-check-lisp-object-type --enable-checking=yes,glyphs --with-native-compilation=yes --with-mps=yes 'CFLAGS=-ggdb3 -O3 -ffile-prefix-map=/home/grfz/src/emacs-igc=. -fstack-protector-strong -Wformat -Werror=format-security -fno-omit-frame-pointer' 'CPPFLAGS=-I/home/grfz/mps-artifacts -Wdate-time -D_FORTIFY_SOURCE=2' 'LDFLAGS=-L/home/grfz/mps-artifacts -Wl,-z,relro'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES MPS NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LC_ALL: value of $LC_COLLATE: de_DE.utf8 value of $LC_CTYPE: de_DE.utf8 value of $LC_MESSAGES: POSIX value of $LC_MONETARY: de_DE.utf8 value of $LC_NUMERIC: de_DE.utf8 value of $LC_TIME: de_DE.utf8 value of $LANG: de_DE.utf8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: rainbow-delimiters-mode: t winner-mode: t which-key-mode: t savehist-mode: t ws-butler-global-mode: t ws-butler-mode: t delete-selection-mode: t minibuffer-depth-indicate-mode: t which-function-mode: t windmove-mode: t xterm-mouse-mode: t key-chord-mode: t mail-abbrevs-mode: t find-function-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: ~/src/notmuch/emacs/notmuch-address hides /home/grfz/.config/emacs/elisp/notmuch-address /home/grfz/src/ol-notmuch/ol-notmuch hides /home/grfz/.config/emacs/elisp/ol-notmuch /home/grfz/.config/emacs/elpa-31.0/magit-4.2.0/magit-autorevert hides /home/grfz/.config/emacs/elpa-31.0/magit-section-4.2.0/magit-autorevert ~/src/notmuch/emacs/notmuch-lib hides /usr/local/share/emacs/site-lisp/notmuch-lib ~/src/notmuch/emacs/coolj hides /usr/local/share/emacs/site-lisp/coolj ~/src/notmuch/emacs/notmuch-address hides /usr/local/share/emacs/site-lisp/notmuch-address ~/src/notmuch/emacs/notmuch-hello hides /usr/local/share/emacs/site-lisp/notmuch-hello ~/src/notmuch/emacs/notmuch-parser hides /usr/local/share/emacs/site-lisp/notmuch-parser ~/src/notmuch/emacs/notmuch-show hides /usr/local/share/emacs/site-lisp/notmuch-show ~/src/notmuch/emacs/notmuch-wash hides /usr/local/share/emacs/site-lisp/notmuch-wash ~/src/notmuch/emacs/notmuch-draft hides /usr/local/share/emacs/site-lisp/notmuch-draft ~/src/notmuch/emacs/notmuch-tree hides /usr/local/share/emacs/site-lisp/notmuch-tree ~/src/notmuch/emacs/notmuch-version hides /usr/local/share/emacs/site-lisp/notmuch-version ~/src/notmuch/emacs/notmuch-jump hides /usr/local/share/emacs/site-lisp/notmuch-jump ~/src/notmuch/emacs/notmuch-company hides /usr/local/share/emacs/site-lisp/notmuch-company ~/src/notmuch/emacs/notmuch hides /usr/local/share/emacs/site-lisp/notmuch ~/src/notmuch/emacs/notmuch-crypto hides /usr/local/share/emacs/site-lisp/notmuch-crypto ~/src/notmuch/emacs/notmuch-compat hides /usr/local/share/emacs/site-lisp/notmuch-compat ~/src/notmuch/emacs/notmuch-maildir-fcc hides /usr/local/share/emacs/site-lisp/notmuch-maildir-fcc ~/src/notmuch/emacs/notmuch-tag hides /usr/local/share/emacs/site-lisp/notmuch-tag ~/src/notmuch/emacs/notmuch-message hides /usr/local/share/emacs/site-lisp/notmuch-message ~/src/notmuch/emacs/notmuch-print hides /usr/local/share/emacs/site-lisp/notmuch-print ~/src/notmuch/emacs/notmuch-mua hides /usr/local/share/emacs/site-lisp/notmuch-mua ~/src/notmuch/emacs/notmuch-query hides /usr/local/share/emacs/site-lisp/notmuch-query /home/grfz/.config/emacs/elpa-31.0/transient-0.8.4/transient hides /home/grfz/src/emacs-igc/lisp/transient /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-shell hides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-shell /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlwave hides /home/grfz/src/emacs-igc/lisp/obsolete/idlwave /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-toolbar hides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-toolbar /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-help hides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-help /home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-complete-structtag hides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-complete-structtag Features: (shadow sort orgalist ecomplete mail-extr tramp trampver tramp-integration files-x tramp-message tramp-compat shell tramp-loaddefs emacsbug add-log rainbow-delimiters winner which-key ol-notmuch notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser notmuch-wash diff-mode track-changes coolj goto-addr icalendar diary-lib diary-loaddefs notmuch-tag crm notmuch-lib notmuch-version notmuch-compat hl-line compat org-contrib org-crypt org-protocol org-clock ob-plantuml gnus-alias advice savehist auth-source-pass holidays holiday-loaddefs ws-butler delsel modus-operandi-theme modus-themes mb-depth which-func imenu windmove xt-mouse edmacro kmacro key-chord comp comp-cstr warnings comp-run comp-common wcheck-mode oc-basic cl-extra help-mode org-element org-persist org-id org-refile org-element-ast inline avl-tree generator ol-eww eww vtable mule-util url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util text-property-search mail-utils range mm-util mail-prsvr ol-docview doc-view filenotify jka-compr image-mode exif dired dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi org ob ob-ref ob-lob ob-table ob-exp org-macro org-pcomplete pcomplete org-list org-footnote org-faces org-entities time-date noutline outline ob-emacs-lisp org-table org-loaddefs thingatpt find-func cal-menu calendar cal-loaddefs ob-tangle ol org-src sh-script rx smie treesit executable org-keys oc ob-comint comint ansi-osc ansi-color ring ob-core org-cycle org-fold org-fold-core org-compat ob-eval org-version org-macs format-spec use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core async-autoloads csv-mode-autoloads debbugs-autoloads dired-git-info-autoloads git-timemachine-autoloads hyperbole-autoloads kotl-autoloads hact set hhist idlwave-autoloads key-chord-autoloads magit-autoloads pcase magit-section-autoloads dash-autoloads minibuffer-line-autoloads org-contrib-autoloads org-noter-autoloads org-autoloads orgalist-autoloads paredit-autoloads pdf-tools-autoloads finder-inf rainbow-delimiters-autoloads tablist-autoloads transient-autoloads wcheck-mode-autoloads info with-editor-autoloads ws-butler-autoloads package browse-url xdg url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo xinput2 x multi-tty move-toolbar make-network-process tty-child-frames native-compile mps emacs) Memory information: ((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0) (vectors 24 0) (vector-slots 8 0 0) (floats 24 0 0) (intervals 64 0 0) (buffers 992 0)) +run --debug-init -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}" Starting program: /home/grfz/src/emacs-igc/src/emacs --debug-init -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}" [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Detaching after vfork from child process 1490619] [Detaching after vfork from child process 1490620] [Detaching after vfork from child process 1490621] [Detaching after vfork from child process 1490622] [Detaching after vfork from child process 1490625] [Detaching after vfork from child process 1490626] [Detaching after vfork from child process 1490692] [Detaching after vfork from child process 1490694] [Detaching after vfork from child process 1490695] Program received signal SIGSEGV, Segmentation fault. [... 155 such lines deleted ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1490698] [Detaching after vfork from child process 1491454] [Detaching after vfork from child process 1491455] [Detaching after vfork from child process 1491584] [Detaching after vfork from child process 1491838] Program received signal SIGSEGV, Segmentation fault. [... plenty such deleted ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1491900] [Detaching after vfork from child process 1491901] [Detaching after vfork from child process 1491903] [Detaching after vfork from child process 1491904] [Detaching after vfork from child process 1491915] [Detaching after vfork from child process 1491916] [Detaching after vfork from child process 1491917] Program received signal SIGSEGV, Segmentation fault. [... 40 such lines deleted ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1491919] [Detaching after vfork from child process 1492526] [Detaching after vfork from child process 1492561] [Detaching after vfork from child process 1492564] [Detaching after vfork from child process 1492565] [Detaching after vfork from child process 1492566] Program received signal SIGSEGV, Segmentation fault. [... 190 such lines deleted ...] Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1492570] [Detaching after vfork from child process 1492572] [Detaching after vfork from child process 1493673] Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. Program received signal SIGSEGV, Segmentation fault. [Detaching after vfork from child process 1496065] [Detaching after vfork from child process 1496066] [Detaching after vfork from child process 1497149] Program received signal SIGSEGV, Segmentation fault. [... 158 such lines deleted ...] Program received signal SIGSEGV, Segmentation fault. Breakpoint 1, terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 425 { +bt #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", line=line <at> entry=829) at ./src/alloc.c:7683 #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/buffer.h:829 #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/xdisp.c:17024 #4 prepare_menu_bars () at ./src/xdisp.c:14041 #5 redisplay_internal () at ./src/xdisp.c:17103 #6 0x000055555564ec75 in redisplay () at ./src/xdisp.c:16675 #7 0x000055555577b9a5 in read_char (commandflag=1, map=Python Exception <class 'gdb.error'>: value has been optimized out , map <at> entry=XIL(0x7fffc31bd02b), prev_event=Python Exception <class 'gdb.error'>: value has been optimized out , used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffc9bb, end_time=end_time <at> entry=0x0) at ./src/keyboard.c:2683 #8 0x000055555577e03b in read_key_sequence (keybuf=keybuf <at> entry=0x7fffffffcb20, prompt=Python Exception <class 'gdb.error'>: value has been optimized out , prompt <at> entry=XIL(0), dont_downcase_last=dont_downcase_last <at> entry=false, can_return_switch_frame=can_return_switch_frame <at> entry=true, fix_current_buffer=fix_current_buffer <at> entry=true, prevent_redisplay=prevent_redisplay <at> entry=false, disable_text_conversion_p=<optimized out>) at ./src/keyboard.c:10790 #9 0x000055555577fd67 in command_loop_1 () at ./src/lisp.h:1184 #10 0x000055555581e7a6 in internal_condition_case (bfun=bfun <at> entry=0x55555577fb10 <command_loop_1>, handlers=handlers <at> entry=XIL(0xa8), hfun=hfun <at> entry=0x555555763cd0 <cmd_error>) at ./src/eval.c:1623 #11 0x000055555576290e in command_loop_2 (handlers=handlers <at> entry=XIL(0xa8)) at ./src/keyboard.c:1174 #12 0x000055555581e52f in internal_catch (tag=tag <at> entry=XIL(0x15498), func=func <at> entry=0x5555557628e0 <command_loop_2>, arg=Python Exception <class 'gdb.error'>: value has been optimized out , arg <at> entry=XIL(0xa8)) at ./src/eval.c:1302 #13 0x00005555557628a9 in command_loop () at ./src/lisp.h:1184 #14 0x000055555576f3e5 in recursive_edit_1 () at ./src/keyboard.c:760 #15 0x000055555576f795 in Frecursive_edit () at ./src/keyboard.c:843 #16 0x00005555555d1f77 in main (argc=5, argv=<optimized out>) at ./src/emacs.c:2580 ++set $bt = backtrace_top () ++if backtrace_p ($bt) +++echo \n +++echo Lisp Backtrace:\n Lisp Backtrace: +++xbacktrace ++++set $bt = backtrace_top () ++++while backtrace_p ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "redisplay_internal (C function)"++++++printf " (0x%x)\n", backtrace_args ($bt) (0x0) +++++set $bt = backtrace_next ($bt) +xbacktrace ++set $bt = backtrace_top () ++while backtrace_p ($bt) +++set $fun = backtrace_function ($bt) +++xgettype $fun ++++if (CHECK_LISP_OBJECT_TYPE) +++++set $bugfix = $fun.i ++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++if $type == Lisp_Symbol ++++xprintsym $fun +++++xsymname $fun ++++++xgetsym $fun +++++++xgetptr $fun ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $fun.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++set $symname = $ptr->u.s.name +++++xgetptr $symname ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $symname.i ++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++if $ptr != 0 ++++++set $sym_name = (struct Lisp_String *) $ptr ++++++xprintstr $sym_name +++++++if (! $arg0) ++++++++set $data = (char *) $sym_name->u.s.data ++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++if $strsize == 0 +++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "redisplay_internal (C function)"++++printf " (0x%x)\n", backtrace_args ($bt) (0x0) +++set $bt = backtrace_next ($bt) +bt full #0 terminate_due_to_signal (sig=sig <at> entry=6, backtrace_limit=backtrace_limit <at> entry=2147483647) at ./src/emacs.c:425 #1 0x00005555555b8f5b in die (msg=msg <at> entry=0x5555559b40d0 "BUFFERP (a)", file=file <at> entry=0x5555559b40c7 "buffer.h", line=line <at> entry=829) at ./src/alloc.c:7683 #2 0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/buffer.h:829 #3 0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out ) at ./src/xdisp.c:17024 f = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out all_windows = <optimized out> some_windows = <optimized out> w = <optimized out> sw = <optimized out> must_finish = <optimized out> match_p = <optimized out> tlbufpos = { charpos = <optimized out>, bytepos = <optimized out> } tlendpos = { charpos = <optimized out>, bytepos = <optimized out> } number_of_visible_frames = <optimized out> sf = <optimized out> polling_stopped_here = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out hscroll_retries = <optimized out> garbaged_frame_retries = <optimized out> consider_all_windows_p = <optimized out> update_miniwindow_p = <optimized out> previous_frame = <optimized out> current_matrices_cleared = <optimized out> new_count = <optimized out> #4 prepare_menu_bars () at ./src/xdisp.c:14041 f = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out all_windows = <optimized out> some_windows = <optimized out> w = <optimized out> sw = <optimized out> must_finish = <optimized out> match_p = <optimized out> tlbufpos = { charpos = <optimized out>, bytepos = <optimized out> } tlendpos = { charpos = <optimized out>, bytepos = <optimized out> } number_of_visible_frames = <optimized out> sf = <optimized out> polling_stopped_here = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out hscroll_retries = <optimized out> garbaged_frame_retries = <optimized out> consider_all_windows_p = <optimized out> update_miniwindow_p = <optimized out> previous_frame = <optimized out> current_matrices_cleared = <optimized out> new_count = <optimized out> #5 redisplay_internal () at ./src/xdisp.c:17103 w = <optimized out> sw = <optimized out> must_finish = <optimized out> match_p = <optimized out> tlbufpos = { charpos = <optimized out>, bytepos = <optimized out> } tlendpos = { charpos = <optimized out>, bytepos = <optimized out> } number_of_visible_frames = <optimized out> sf = <optimized out> polling_stopped_here = <optimized out> tail = Python Exception <class 'gdb.error'>: value has been optimized out frame = Python Exception <class 'gdb.error'>: value has been optimized out hscroll_retries = <optimized out> garbaged_frame_retries = <optimized out> consider_all_windows_p = <optimized out> update_miniwindow_p = <optimized out> previous_frame = <optimized out> current_matrices_cleared = <optimized out> new_count = <optimized out> #6 0x000055555564ec75 in redisplay () at ./src/xdisp.c:16675 #7 0x000055555577b9a5 in read_char (commandflag=1, map=Python Exception <class 'gdb.error'>: value has been optimized out , map <at> entry=XIL(0x7fffc31bd02b), prev_event=Python Exception <class 'gdb.error'>: value has been optimized out , used_mouse_menu=used_mouse_menu <at> entry=0x7fffffffc9bb, end_time=end_time <at> entry=0x0) at ./src/keyboard.c:2683 echo_current = false c = XIL(0xc20b1d08) local_getcjmp = {{ __jmpbuf = {0, 1, 140737488340544, 93824995805383, 140736458492269, 0, 140736562946003, 56448}, __mask_was_saved = -14784, __saved_mask = { __val = {0, 56448, 0, 140736465790707, 140736652710968, 140737488340640, 93824995805383, 56448, 8589919984, 140737488340640, 0, 56448, 140737488340720, 140736448845896, 140736448845901, 140737488340912} } }} save_jump = {{ __jmpbuf = {140736448845901, 93824995842824, 140736448845896, 140737488340768, 140736448845896, 0, 0, 93824995066752}, __mask_was_saved = 0, __saved_mask = { __val = {93824995065784, 444559, 7269376900467383552, 0, 128, 0, 0, 93824996979680, 140736448845901, 140736405658160, 140736633644704, 140737488340848, 93824995062785, 6, 140736633643803, 140737488341024} } }} tem = Python Exception <class 'gdb.error'>: value has been optimized out save = Python Exception <class 'gdb.error'>: value has been optimized out previous_echo_area_message = XIL(0) also_record = XIL(0) reread = false recorded = false polling_stopped_here = false orig_kboard = 0x555556039310 c_volatile = XIL(0) #8 0x000055555577e03b in read_key_sequence (keybuf=keybuf <at> entry=0x7fffffffcb20, prompt=Python Exception <class 'gdb.error'>: value has been optimized out , prompt <at> entry=XIL(0), dont_downcase_last=dont_downcase_last <at> entry=false, can_return_switch_frame=can_return_switch_frame <at> entry=true, fix_current_buffer=fix_current_buffer <at> entry=true, prevent_redisplay=prevent_redisplay <at> entry=false, disable_text_conversion_p=<optimized out>) at ./src/keyboard.c:10790 interrupted_kboard = 0x555556039310 interrupted_frame = 0x7fffc20b1d08 key = Python Exception <class 'gdb.error'>: value has been optimized out used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = Python Exception <class 'gdb.error'>: value has been optimized out t = 0 echo_start = 0 keys_start = 0 current_binding = XIL(0x7fffc31bd02b) first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = { parent = XIL(0x7fffe60e78cb), map = XIL(0x7fffe60e78cb), start = 0, end = 0 } keytran = { parent = XIL(0x7fffebe4ca73), map = XIL(0x7fffebe4ca73), start = 0, end = 0 } indec = { parent = XIL(0x7fffe60e78b3), map = XIL(0x7fffe60e78b3), start = 0, end = 0 } shift_translated = false delayed_switch_frame = XIL(0) original_uppercase = XIL(0) original_uppercase_position = -1 disabled_conversion = false fake_prefixed_keys = XIL(0) first_event = XIL(0) #9 0x000055555577fd67 in command_loop_1 () at ./src/lisp.h:1184 cmd = Python Exception <class 'gdb.error'>: value has been optimized out keybuf = {XIL(0x7fffc31abc73), make_fixnum(53), make_fixnum(48), XIL(0), XIL(0x5555559db3e0), XIL(0x7fffc20a584d), XIL(0x7fffffffcbc0), XIL(0x5555558205a3), XIL(0x7fffffffcdec), XIL(0x3), XIL(0xc), XIL(0x140b0), XIL(0x38), XIL(0x7fffc20a584d), XIL(0x7fffffffcbc0), XIL(0x7fffffffcc00), XIL(0x60), XIL(0x555555763cd0), XIL(0x7fffffffcdec), XIL(0x7fffffffd4ef), XIL(0x7fffffffcc50), XIL(0x555555763ec7), XIL(0), XIL(0), XIL(0x2aaa78cd6780), XIL(0x7fffc28051bb), XIL(0x7fffda689a9c), XIL(0x2aaa730f4468), XIL(0x7fffffffcc00), XIL(0x5555558205a3)} i = <optimized out> last_pt = <optimized out> prev_modiff = 6292 prev_buffer = 0x7fffc20a5848 #10 0x000055555581e7a6 in internal_condition_case (bfun=bfun <at> entry=0x55555577fb10 <command_loop_1>, handlers=handlers <at> entry=XIL(0xa8), hfun=hfun <at> entry=0x555555763cd0 <cmd_error>) at ./src/eval.c:1623 val = make_fixnum(16) c = 0x7fffe1d92450 #11 0x000055555576290e in command_loop_2 (handlers=handlers <at> entry=XIL(0xa8)) at ./src/keyboard.c:1174 #12 0x000055555581e52f in internal_catch (tag=tag <at> entry=XIL(0x15498), func=func <at> entry=0x5555557628e0 <command_loop_2>, arg=Python Exception <class 'gdb.error'>: value has been optimized out , arg <at> entry=XIL(0xa8)) at ./src/eval.c:1302 val = make_fixnum(16) c = 0x7fffe1d6cd10 #13 0x00005555557628a9 in command_loop () at ./src/lisp.h:1184 #14 0x000055555576f3e5 in recursive_edit_1 () at ./src/keyboard.c:760 val = Python Exception <class 'gdb.error'>: value has been optimized out #15 0x000055555576f795 in Frecursive_edit () at ./src/keyboard.c:843 #16 0x00005555555d1f77 in main (argc=5, argv=<optimized out>) at ./src/emacs.c:2580 stack_bottom_variable = 0x7ffff3e92c60 old_argc = <optimized out> no_loadup = <optimized out> junk = 0x0 dname_arg = 0x7fffffffd551 "EMACS-MPS=yes" ch_to_dir = 0x0 original_pwd = <optimized out> dump_mode = <optimized out> skip_args = 1 temacs = 0x0 attempt_load_pdump = <optimized out> only_version = <optimized out> rlim = { rlim_cur = 10022912, rlim_max = 18446744073709551615 } lc_all = <optimized out> sockfd = <optimized out> module_assertions = <optimized out> ++set $bt = backtrace_top () ++if backtrace_p ($bt) +++echo \n +++echo Lisp Backtrace:\n Lisp Backtrace: +++xbacktrace ++++set $bt = backtrace_top () ++++while backtrace_p ($bt) +++++set $fun = backtrace_function ($bt) +++++xgettype $fun ++++++if (CHECK_LISP_OBJECT_TYPE) +++++++set $bugfix = $fun.i ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS) +++++if $type == Lisp_Symbol ++++++xprintsym $fun +++++++xsymname $fun ++++++++xgetsym $fun +++++++++xgetptr $fun ++++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++++set $bugfix = $fun.i ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr)) ++++++++set $symname = $ptr->u.s.name +++++++xgetptr $symname ++++++++if (CHECK_LISP_OBJECT_TYPE) +++++++++set $bugfix = $symname.i ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK +++++++if $ptr != 0 ++++++++set $sym_name = (struct Lisp_String *) $ptr ++++++++xprintstr $sym_name +++++++++if (! $arg0) ++++++++++set $data = (char *) $sym_name->u.s.data ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte ++++++++++if $strsize == 0 +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize) "redisplay_internal (C function)"++++++printf " (0x%x)\n", backtrace_args ($bt) (0x0) +++++set $bt = backtrace_next ($bt) +i reg rax 0x42 66 rbx 0x5555556069a0 93824992962976 rcx 0x0 0 rdx 0x0 0 rsi 0x7fffffff 2147483647 rdi 0x6 6 rbp 0x7fffffffae30 0x7fffffffae30 rsp 0x7fffffffae28 0x7fffffffae28 r8 0x0 0 r9 0x73 115 r10 0x0 0 r11 0x202 514 r12 0x5555556716d0 93824993400528 r13 0x7fffc20a5848 140736448845896 r14 0x0 0 r15 0x6e633 452147 rip 0x5555555b1385 0x5555555b1385 <terminate_due_to_signal> eflags 0x206 [ PF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0
[Message part 3 (message/rfc822, inline)]
From: Pip Cet <pipcet <at> protonmail.com> To: Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: 76091-done <at> debbugs.gnu.org, Gregor Zattler <telegraph <at> gmx.net>, Helmut Eller <eller.helmut <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a) Date: Fri, 07 Feb 2025 19:43:18 +0000Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: >>> Well, yes. I'll split it up into individual patches, so we can review >>> them one by one? >> >> Not necessary, but thanks. > > I'm through. Except for the shrinking case that you already mentioned I haven't found other problems. > > So LGTM. Thanks! Hope I didn't break anything, but I just pushed the series. Please feel free to revert or fix as appropriate! Gregor, I believe this should fix the bug you originally saw (the second bug you saw when building without optimization has also been fixed), so I'm optimistically closing this report. If you run into any further issues, please open a new bug or reopen this one if it looks quite similar :-) Thanks again for the report, please keep them coming! Pip
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.