Subject: bug#58584: 29.0.50; M-w crashes Emacs

From: Jacky Li <[email-masked]>
Date: Mon, 17 Oct 2022 23:15:01 +0800

I was at eff4a4f49a. In EXWM, using M-w will crash Emacs. The x server
gave an error of not finding the libinput module. I then switched to
dwm, Emacs still crashed after M-w.

I am currently at b9aff5fdb8, everything is fine. I strongly suspect the
bug was introduced in abf683bb03. It should be something related to
putting things into kill buffer related to X. An extra information is
that my Emacs is built with libinput2 support.

Here is the error log from the terminal.

Fatal error 11: Segmentation fault
Backtrace:
emacs(emacs_backtrace+0x53)[0x5594ab580793]
emacs(terminate_due_to_signal+0x84)[0x5594ab426c92]
emacs(+0x8d1bc)[0x5594ab4271bc]
emacs(+0x1e49b8)[0x5594ab57e9b8]
emacs(+0x1e4a39)[0x5594ab57ea39]
/usr/lib/libc.so.6(+0x38a00)[0x7f6faed06a00]
/usr/lib/libgdk-3.so.0(+0x8c822)[0x7f6fb8538822]
/usr/lib/libgdk-3.so.0(+0x87f54)[0x7f6fb8533f54]
/usr/lib/libgdk-3.so.0(+0x8ae68)[0x7f6fb8536e68]
/usr/lib/libgdk-3.so.0(gdk_display_get_event+0x99)[0x7f6fb84dd019]
/usr/lib/libgdk-3.so.0(+0x8b048)[0x7f6fb8537048]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x19b)[0x7f6fb769381b]
/usr/lib/libglib-2.0.so.0(+0xabec9)[0x7f6fb76e9ec9]
/usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x32)[0x7f6fb76920d2]
/usr/lib/libgtk-3.so.0(gtk_main_iteration+0x1b)[0x7f6fb7dd7cfb]
emacs(+0x18140a)[0x5594ab51b40a]
emacs(gobble_input+0x101)[0x5594ab566bd1]
emacs(unblock_input+0x55)[0x5594ab569dc5]
emacs(x_own_selection+0x9e)[0x5594ab5464be]
emacs(Fx_own_selection_internal+0x82)[0x5594ab5466a2]
emacs(exec_byte_code+0x3f0)[0x5594ab6399a0]
emacs(Ffuncall+0xf6)[0x5594ab5ef5b6]
emacs(Fapply+0x100)[0x5594ab5ef7d0]
emacs(exec_byte_code+0x3f0)[0x5594ab6399a0]
emacs(Ffuncall+0xf6)[0x5594ab5ef5b6]
emacs(Fapply+0x100)[0x5594ab5ef7d0]
emacs(exec_byte_code+0x3f0)[0x5594ab6399a0]
emacs(Ffuncall+0xf6)[0x5594ab5ef5b6]
/usr/local/bin/../lib/emacs/29.0.50/native-lisp/29.0.50-43dc7e10/preloaded/simple-fab5b0cf-76628045.eln(F6b696c6c2d6e6577_kill_new_0+0x282)[0x7f6fa9b27ee2]
emacs(Ffuncall+0xf6)[0x5594ab5ef5b6]
/usr/local/bin/../lib/emacs/29.0.50/native-lisp/29.0.50-43dc7e10/preloaded/simple-fab5b0cf-76628045.eln(F636f70792d726567696f6e2d61732d6b696c6c_copy_region_as_kill_0+0x16a)[0x7f6fa9b28dda]
emacs(Ffuncall+0xf6)[0x5594ab5ef5b6]
/usr/local/bin/../lib/emacs/29.0.50/native-lisp/29.0.50-43dc7e10/preloaded/simple-fab5b0cf-76628045.eln(F6b696c6c2d72696e672d73617665_kill_ring_save_0+0x50)[0x7f6fa9b28e40]
emacs(exec_byte_code+0x3f0)[0x5594ab6399a0]
emacs(+0x25a0c4)[0x5594ab5f40c4]
emacs(Ffuncall+0xf6)[0x5594ab5ef5b6]
emacs(Fapply+0x100)[0x5594ab5ef7d0]
emacs(exec_byte_code+0x3f0)[0x5594ab6399a0]
emacs(Ffuncall+0xf6)[0x5594ab5ef5b6]
emacs(Ffuncall_interactively+0x2e)[0x5594ab5eb49e]
emacs(Ffuncall+0xf6)[0x5594ab5ef5b6]

In GNU Emacs 29.0.50 (build 28, x86_64-pc-linux-gnu, GTK+ Version
 3.24.34, cairo version 1.17.6) of 2022-10-17 built on artix
Repository revision: b9aff5fdb89092b68ebd7782c8dc85e6daca14b2
Repository branch: HEAD
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Artix Linux

Configured using:
 'configure --with-native-compilation --with-imagemagick --with-x
 --with-x-toolkit=gtk3 --with-xwidgets --with-xinput2 --with-mailutils'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM XWIDGETS
GTK3 ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=exwm-xim
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  electric-pair-mode: t
  display-time-mode: t
  exwm-firefox-mode: t
  pixel-scroll-precision-mode: t
  sly-symbol-completion-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  emms-playing-time-display-mode: t
  emms-playing-time-mode: t
  mood-line-mode: t
  global-tree-sitter-mode: t
  corfu-history-mode: t
  global-corfu-mode: t
  corfu-mode: t
  global-auto-revert-mode: t
  which-key-mode: t
  marginalia-mode: t
  savehist-mode: t
  vertico-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  shell-switcher-mode: t
  dired-omit-mode: t
  shell-dirtrack-mode: t
  org-roam-db-autosync-mode: t
  pdf-occur-dired-minor-mode: t
  pdf-occur-global-minor-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  windmove-mode: t
  tooltip-mode: t
  global-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
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  global-visual-line-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/jacky/.config/emacs/straight/build/jsonrpc/jsonrpc hides /usr/local/share/emacs/29.0.50/lisp/jsonrpc
/home/jacky/.config/emacs/straight/build/transient/transient hides /usr/local/share/emacs/29.0.50/lisp/transient
/home/jacky/.config/emacs/straight/build/project/project hides /usr/local/share/emacs/29.0.50/lisp/progmodes/project
/home/jacky/.config/emacs/straight/build/xref/xref hides /usr/local/share/emacs/29.0.50/lisp/progmodes/xref
/home/jacky/.config/emacs/straight/build/flymake/flymake hides /usr/local/share/emacs/29.0.50/lisp/progmodes/flymake
/home/jacky/.config/emacs/straight/build/eldoc/eldoc hides /usr/local/share/emacs/29.0.50/lisp/emacs-lisp/eldoc
/home/jacky/.config/emacs/straight/build/let-alist/let-alist hides /usr/local/share/emacs/29.0.50/lisp/emacs-lisp/let-alist

Features:
(shadow vc-hg vc-git vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view
vc vc-dispatcher mail-extr emacsbug misearch multi-isearch mule-util
cursor-sensor display-line-numbers init init-shapeless-blog
shapeless-blog shapeless-blog-autoloads init-ui elec-pair time init-font
init-exwm exwm-firefox exwm-firefox-core exwm-firefox-core-autoloads
exwm-edit exwm-edit-autoloads exwm-randr xcb-randr exwm-xim xcb-xim
xcb-xlib exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating
xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh
xcb-icccm xcb xcb-xproto xcb-types xcb-debug exwm-autoloads
xelb-autoloads init-pixel-scroll-precision pixel-scroll cua-base
init-geiser geiser-guile geiser-repl geiser-image geiser-capf geiser-doc
geiser-menu geiser-autodoc geiser-edit geiser-completion geiser-eval
geiser-connection geiser-syntax scheme geiser-log geiser-popup
geiser-guile-autoloads geiser-impl geiser-custom geiser-base geiser
geiser-autoloads init-sly sly sly-completion sly-buttons sly-messages
sly-common apropos hyperspec sly-autoloads init-pass pass password-store
pass-autoloads password-store-otp-autoloads password-store-autoloads
auth-source-pass init-mentor mentor url-scgi mentor-rpc mentor-files
mentor-data xml-rpc async mentor-autoloads async-autoloads
xml-rpc-autoloads init-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 coolj goto-addr icalendar
diary-lib diary-loaddefs notmuch-tag notmuch-lib notmuch-version
notmuch-compat mm-view mml-smime smime dig init-magit forge-list
forge-commands forge-semi forge-bitbucket buck forge-gogs gogs
forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy
gsexp ghub url-http url-gw nsm url-auth gnutls forge-notify
forge-revnote forge-pullreq forge-issue forge-topic yaml bug-reference
forge-post forge-repo forge forge-core forge-db closql forge-autoloads
yaml-autoloads ghub-autoloads treepy-autoloads closql-autoloads
magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
which-func magit-diff smerge-mode diff diff-mode git-commit log-edit
message yank-media rfc822 mml mml-sec gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils pcvs-util add-log
magit-core magit-autorevert magit-margin magit-transient magit-process
with-editor magit-mode magit-git magit-base crm magit-autoloads
git-commit-autoloads with-editor-autoloads init-w3m w3m doc-view
timezone w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-favicon w3m-image
tab-line w3m-proc w3m-util w3m-autoloads init-emms emms-librefm-stream
emms-librefm-scrobbler emms-playlist-limit emms-i18n emms-history
emms-score emms-stream-info emms-metaplaylist-mode emms-bookmarks
emms-cue emms-mode-line-icon emms-browser sort emms-volume
emms-volume-sndioctl emms-volume-mixerctl emms-volume-pulse
emms-volume-amixer emms-playlist-sort emms-last-played emms-player-xine
emms-player-mpd emms-lyrics emms-url emms-streams emms-show-all
emms-tag-editor emms-tag-tracktag emms-mark emms-mode-line emms-cache
emms-info-native bindat emms-info-exiftool emms-info-tinytag
emms-info-metaflac emms-info-opusinfo emms-info-ogginfo
emms-info-mp3info emms-playlist-mode emms-player-vlc emms-player-mpv
emms-playing-time emms-info emms-later-do emms-player-mplayer
emms-player-simple emms-source-playlist emms-source-file locate
emms-setup emms emms-compat emms-autoloads init-pdf pdf-view-restore
pdf-view-restore-autoloads init-eglot shapeless-c-arrow clang-format
eglot array jsonrpc ert ewoc eglot-autoloads flymake-autoloads
eldoc-autoloads jsonrpc-autoloads init-prettier prettier-autoloads
editorconfig-autoloads nvm-autoloads iter2-autoloads init-format-all
format-all language-id inheritenv format-all-autoloads
language-id-autoloads inheritenv-autoloads init-indent-guide
indent-guide indent-guide-autoloads init-caddyfile caddyfile-mode loop
caddyfile-mode-autoloads loop-autoloads init-typescript typescript-mode
typescript-mode-autoloads init-lilypond lilypond-mode init-json
json-mode json-snatcher js cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine json-mode-autoloads json-snatcher-autoloads
init-wat wat-mode wat-mode-macro wat-mode-font-lock wat-mode-autoloads
init-flutter flutter flutter-l10n flutter-project flutter-autoloads
init-dart dart-mode dart-mode-autoloads init-glsl glsl-mode
glsl-mode-autoloads init-yaml yaml-mode yaml-mode-autoloads init-web
web-mode web-mode-autoloads init-nginx nginx-mode nginx-mode-autoloads
init-rust cargo cargo-process cargo-autoloads toml-mode conf-mode align
toml-mode-autoloads rustic-spellcheck rustic-expand rustic-lsp
rustic-playpen rustic-rustfix rustic-racer rustic-babel rustic-rustfmt
rustic-comint rustic-clippy rustic-doc xdg rustic-popup rustic-cargo
rustic-compile spinner xterm-color rustic-interaction rustic rust-utils
rust-mode rustic-autoloads xterm-color-autoloads spinner-autoloads
rust-mode-autoloads init-go go-mode find-file etags fileloop xref
go-mode-autoloads init-swift swift-mode swift-mode-imenu swift-mode-repl
swift-mode-font-lock swift-mode-standard-types swift-mode-fill
swift-mode-beginning-of-defun swift-mode-indent swift-mode-lexer
swift-mode-autoloads init-markdown markdown-mode markdown-mode-autoloads
init-restclient init-djvu djvu djvu-autoloads init-hackernews hackernews
hackernews-autoloads init-nov nov-xwidget xwidget nov-xwidget-autoloads
nov nov-autoloads init-calibredb calibredb calibredb-dired
calibredb-consult calibredb-opds esxml esxml-query calibredb-org
calibredb-library calibredb-ivy calibredb-utils calibredb-annotation
calibredb-transient calibredb-helm calibredb-show calibredb-search
calibredb-faces calibredb-core sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr transient edmacro hl-line sql view
calibredb-autoloads esxml-autoloads kv-autoloads transient-autoloads
init-inherit-org inherit-org inherit-org-autoloads init-shrface shrface
org-indent shr pixel-fill kinsoku url-file puny svg xml dom
shrface-autoloads language-detection-autoloads init-mood-line mood-line
mood-line-autoloads init-multiple-cursors multiple-cursors
mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core rect multiple-cursors-autoloads init-rainbow
rainbow-mode rainbow-mode-autoloads init-tree-sitter tree-sitter-langs
tree-sitter-langs-build tar-mode arc-mode archive-mode tree-sitter-hl
tree-sitter-langs-autoloads tree-sitter tree-sitter-load tree-sitter-cli
tsc tsc-dyn tsc-dyn-get dired-aux tsc-obsolete tree-sitter-autoloads
tsc-autoloads init-corfu corfu-history corfu corfu-autoloads init-cape
cape cape-autoloads init-framemove framemove init-request request
mailheader autorevert filenotify mail-utils request-autoloads
init-ripgrep ripgrep grep ripgrep-autoloads init-helpful helpful
cc-langs cc-vars cc-defs trace edebug debug backtrace info-look f
f-shortdoc shortdoc help-fns radix-tree elisp-refs s helpful-autoloads
elisp-refs-autoloads f-autoloads s-autoloads init-which-key which-key
which-key-autoloads init-consult init-embark embark-consult
consult-vertico consult compat-28 recentf tree-widget kmacro
embark-consult-autoloads consult-autoloads embark ffap embark-autoloads
init-marginalia marginalia marginalia-autoloads init-savehist savehist
init-orderless orderless orderless-autoloads init-vertico
vertico-directory vertico vertico-autoloads init-tempel tempel
tempel-autoloads init-yasnippet yasnippet yasnippet-autoloads
init-blackout blackout blackout-autoloads init-dictionary dictionary
dictionary-connection init-ibuffer ibuf-macs ibuffer-project
ibuffer-project-autoloads init-ediff ediff ediff-merg ediff-mult
ediff-wind ediff-diff ediff-help ediff-init ediff-util init-flymake
flymake-proc flymake thingatpt init-epa org-crypt server epa-file epa
derived epg rfc6068 epg-config pinentry pinentry-autoloads init-shell
vterm-toggle tramp-sh vterm-toggle-autoloads multi-vterm project
multi-vterm-autoloads project-autoloads xref-autoloads vterm face-remap
color term disp-table ehelp vterm-module term/xterm xterm
vterm-autoloads shell-switcher rswitcher shell-switcher-autoloads
init-input-method shapeless-chinese cangjie5 quail init-dired dired-x
init-theme shapeless-theme init-tramp tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat parse-time ls-lisp init-org
ob-shell shell ob-dot ob-restclient restclient ob-restclient-autoloads
restclient-autoloads org-present org-present-autoloads htmlize
htmlize-autoloads comp comp-cstr warnings org-roam-migrate org-roam-log
org-roam-mode org-roam-capture org-roam-id org-roam-node org-roam-db
org-roam-utils org-roam-compat org-roam org-capture org-attach org-id
emacsql-sqlite emacsql emacsql-compiler magit-section compat-27
compat-26 compat compat-macs dash org-roam-autoloads
magit-section-autoloads compat-autoloads emacsql-sqlite-autoloads
emacsql-autoloads dash-autoloads info ox-shapelesshtml ox-slimhtml
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
org-agenda ox-html table ox-ascii ox-publish ox ox-slimhtml-autoloads
org-pdftools pdf-occur ibuf-ext ibuffer ibuffer-loaddefs pdf-isearch
let-alist pdf-annot tablist tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet facemenu
pdf-misc imenu pdf-tools package browse-url 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 eieio
eieio-core url-vars compile cus-edit cus-load wid-edit pdf-view
password-cache bookmark text-property-search pp jka-compr pdf-cache
pdf-info tq pdf-util pdf-macs image-mode dired dired-loaddefs exif
org-noter easy-mmode org-element avl-tree generator org-refile
org-pdftools-autoloads org-noter-autoloads finder-inf
pdf-tools-autoloads let-alist-autoloads tablist-autoloads valign pcase
valign-autoloads org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint
ansi-osc ansi-color ring org-list org-faces org-entities noutline
outline icons org-version ob-emacs-lisp ob-core ob-eval org-table
oc-basic json map bibtex iso8601 time-date ol rx org-keys oc org-compat
byte-opt advice org-macs org-loaddefs format-spec find-func cal-menu
calendar cal-loaddefs init-straight straight-x straight-autoloads cl-seq
cl-extra help-mode straight subr-x cl-macs gv cl-loaddefs cl-lib
bytecomp byte-compile cconv init-keybinding windmove init-helpers
init-compat rmc iso-transl tooltip eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd 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 xwidget-internal dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit
xinput2 x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 1102426 198574)
 (symbols 48 72646 100)
 (strings 32 296207 26410)
 (string-bytes 1 9590989)
 (vectors 16 184970)
 (vector-slots 8 3669120 328240)
 (floats 8 788 411)
 (intervals 56 5696 2959)
 (buffers 1000 28))