I wish I could describe exactly what happened. I found https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70541 which sounds very much like what I'm seeing, but I don't use any input method.
What I can say: - I use rust-mode (not rust-ts-mode) - I use eglot (config below) - I use rust-analyzer 1.80.1 (3f5fd8d 2024-08-06) - The problem seems to happen deep into a work day, after many commits, reverts, etc. My eglot configuration: #+begin_src elisp (setq eglot-extend-to-xref t eglot-ignored-server-capabilities '( :inlayHintProvider :documentOnTypeFormattingProvider ) ) #+end_src Eventually, this pops into *Messages*: #+begin_quote cl--assertion-failed: Assertion failed: (or track-changes--before-no (<= track-changes--before-beg (track-changes--state-beg track-changes--state) beg end (track-changes--state-end track-changes--state) track-changes--before-end)) #+end_quote And this in *Warnings*: #+begin_quote ⛔ Warning (emacs): Missing/incorrect calls to ‘before/after-change-functions’!! Details logged to ‘track-changes--error-log’ #+end_quote Over time, they just keep repeating, although I think killing the buffer and reopening the file makes it stop. If I have inspected ‘track-changes--error-log’ correctly, this is what it contains (looks like some binary, hope it comes through in some useful fashion or another): #+begin_quote (("lib.rs" (buffer-size 5254 5218) ((t track-changes--recover-from-error ... nil) (t track-changes-fetch ... nil) (t eglot--track-changes-fetch ... nil) (t eglot--signal-textDocument/didChange nil nil) (t eglot--signal-textDocument/didSave nil nil) (t run-hooks ... nil) (t basic-save-buffer ... nil) (t save-buffer ... nil) (t funcall-interactively ... nil) (t call-interactively ... nil) (t command-execute ... nil)) [111 (nil . other-window) 103 (nil . recompile) 121 (nil . undefined) 24 96 (nil . next-error) 1 (nil . move-beginning-of-line) 11 ...]) ("lib.rs" (buffer-size 5256 5254) ((t track-changes--recover-from-error ... nil) (t track-changes-fetch ... nil) (t eglot--track-changes-fetch ... nil) (t eglot--signal-textDocument/didChange nil nil) (t eglot--signal-textDocument/didSave nil nil) (t run-hooks ... nil) (t basic-save-buffer ... nil) (t save-buffer nil nil) (t #[257 "r\211q\210\300 )\207" [save-buffer] 2 ...] ... nil) (t map-y-or-n-p ... nil) (t save-some-buffers ... nil) (t recompile ... nil) ...) [19 (nil . save-buffer) 24 24 (nil . exchange-point-and-mark) 23 (nil . kill-region) 24 19 (nil . save-buffer) backspace (nil . delete-backward-char) ...]) ("lib.rs" (buffer-size 5278 5256) ((t track-changes--recover-from-error ... nil) (t track-changes-fetch ... nil) (t eglot--track-changes-fetch ... nil) (t eglot--signal-textDocument/didChange nil nil) (t eglot--signal-textDocument/didSave nil nil) (t run-hooks ... nil) (t basic-save-buffer ... nil) (t save-buffer ... nil) (t funcall-interactively ... nil) (t call-interactively ... nil) (t command-execute ... nil)) [(nil . backward-word) 2 (nil . backward-char) 67108896 (nil . set-mark-command) 134217734 (nil . forward-sexp) 23 (nil . kill-region) 24 19 (nil . save-buffer) ...]) ("lib.rs" (buffer-size 5324 5278) ((t track-changes--recover-from-error ... nil) (t track-changes-fetch ... nil) (t eglot--track-changes-fetch ... nil) (t eglot--track-changes-signal ... nil) (t #[771 "\211^BZ\211^HG^E] #+end_quote I wish I could reliably repeat it. Given that it occurs after many hours of work, `emacs -Q` isn't an option. Thanks! In GNU Emacs 30.0.90 (build 9, x86_64-pc-linux-gnu, cairo version 1.18.0) of 2024-09-03 built on dogato Repository revision: ae2463796f236b8ee2cef3b5e38bffa13abd2233 Repository branch: emacs-30 Windowing system distributor 'The X.Org Foundation', version 11.0.12101012 System Description: openSUSE Tumbleweed Configured using: 'configure -C --prefix=/opt/emacs-30.0.90.5.ae2463796f2 --disable-silent-rules --with-x-toolkit=no --without-gsettings --with-native-compilation=no' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LC_CTYPE: en_US.UTF-8 value of $XMODIFIERS: @im=local locale-coding-system: utf-8-unix Major mode: ELisp/d Minor modes in effect: server-mode: t editorconfig-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t line-number-mode: t indent-tabs-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr tabify cus-edit cus-start cus-load cl-print help-fns radix-tree mh-utils emacsbug conf-mode smerge-mode whitespace time-stamp perl-mode bug-reference log-edit mule-util display-line-numbers dired-aux view pulse color vc-annotate oc-basic org-element org-persist org-id org-refile org-element-ast inline avl-tree generator ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail browse-url mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range message yank-media rfc822 mailabbrev gmm-utils mailheader gnus-win gnus nnheader range wid-edit ol-docview doc-view jka-compr image-mode exif dired dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi org org-macro org-pcomplete org-list org-footnote org-faces org-entities noutline outline org-version ob-sql ob-emacs-lisp ob-C ob ob-tangle org-src sh-script smie treesit executable ob-ref ob-lob ob-table ob-exp ob-comint ob-core ob-eval cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-compat org-macs format-spec misearch multi-isearch add-log cl-extra server shell pcomplete files-x grep vc-cvs vc-rcs log-view pcvs-util vc-dir vc rust-utils rust-mode rust-rustfmt rust-playpen rust-compile rust-cargo rx eglot external-completion jsonrpc xref flymake thingatpt project compat diff ert pp ewoc debug backtrace help-mode find-func filenotify warnings compile comint ansi-osc ansi-color ring pcase vc-git diff-mode track-changes easy-mmode vc-dispatcher url-cache url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util url-parse auth-source eieio eieio-core cl-macs icons json map byte-opt gv bytecomp byte-compile url-vars mh-acros mh-folder which-func imenu mh-comp sendmail mail-utils mh-scan mh-gnus mml mm-view mml-smime mml-sec epa derived epg rfc6068 epg-config smime cl-seq password-cache gnutls puny dig mailcap mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util mail-prsvr gnus-util text-property-search time-date subr-x mh-e mh-buffers mh-loaddefs editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch 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 emacs) Memory information: ((conses 16 407345 108770) (symbols 48 32008 1) (strings 32 102422 6760) (string-bytes 1 2997195) (vectors 16 63439) (vector-slots 8 1388223 211290) (floats 8 478 2399) (intervals 56 29367 817) (buffers 992 73))