bug#47461: 27.2; Cannot delete windows due to some trouble with markers

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

bug#47461: 27.2; Cannot delete windows due to some trouble with markers

Eli Zaretskii
I don't have a reproducer, since I don't know yet why would some
marker in some buffer become invalid.

However, given that this does happen for some reason, I am unable to
delete windows via "C-x 1" and "C-x 0", due to this part of
delete-window:

  (interactive)
  (when switch-to-buffer-preserve-window-point
    (window--before-delete-windows))  <<<<<<<<<<<<<<<<<<<<<<

(Recall that switch-to-buffer-preserve-window-point is nowadays t by
default.)

What happens is that window--before-delete-windows works with markers,
and if that signals an error, the whole command is aborted.  All you
get is this unhelpful error message:

  Marker does not point anywhere

Fortunately, mouse-delete-window and mouse-delete-other-windows don't
have the code shown above, so I was able to work around the problem by
using those mouse commands.  Another workaround is to temporarily
reset switch-to-buffer-preserve-window-point, but that is only
apparent if you read the code and realize or know that
window--before-delete-windows is the one that signals the error.

Should we perhaps run this with demoted errors in the interactive
case, so that users aren't locked when something like that happens?

(I will try to figure out which marker becomes invalid and why.)

In GNU Emacs 27.2 (build 2, i686-pc-mingw32)
 of 2021-03-25 built on HOME-C4E4A596F7
Windowing system distributor 'Microsoft Corp.', version 5.1.2600
System Description: Microsoft Windows XP Service Pack 3 (v5.1.0.2600)

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure -C --prefix=/d/usr --with-wide-int 'CFLAGS=-O2 -gdwarf-4
 -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY W32NOTIFY ACL GNUTLS LIBXML2
HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS JSON PDUMPER LCMS2 GMP

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic 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 charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads w32notify w32 lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 50567 10691)
 (symbols 48 7168 1)
 (strings 16 18854 2188)
 (string-bytes 1 533195)
 (vectors 16 9556)
 (vector-slots 8 128347 7168)
 (floats 8 21 169)
 (intervals 40 255 69)
 (buffers 888 11))