GNU bug report logs - #75056
31.0.50; tty-child-frames with server / multiple clients possible hangs

Previous Next

Package: emacs;

Reported by: Len Trigg <lenbok <at> gmail.com>

Date: Tue, 24 Dec 2024 05:44:02 UTC

Severity: normal

Found in version 31.0.50

Full log


View this message in rfc822 format

From: martin rudalics <rudalics <at> gmx.at>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, lenbok <at> gmail.com, 75056 <at> debbugs.gnu.org
Subject: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs
Date: Sun, 9 Feb 2025 16:47:17 +0100
> Sachen gibt's :-/.

Clicking with the mouse on an arbitrary menubar item gets me


Debugger entered--Lisp error: (error "#<frame F1 0x13906d40> is not a valid window")
  signal(error ("#<frame F1 0x13906d40> is not a valid window"))
  error("%s is not a valid window" #<frame F1 0x13906d40>)
  window-normalize-window(#<frame F1 0x13906d40> nil)
  window-edges(#<frame F1 0x13906d40> nil t)
  (let* ((--cl-rest-- (window-edges win nil t)) (wx (if (= (length --cl-rest--) 4) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (signal 'wrong-number-of-arguments (list '(wx wy _ _) (length --cl-rest--))))) (wy (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (_ (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (_ (car-safe --cl-rest--))) (list (window-frame win) (+ wx x) (+ wy y)))
  (let* ((end (event-end e)) (win (posn-window end)) (x (car (posn-x-y end))) (y (cdr (posn-x-y end)))) (let* ((--cl-rest-- (window-edges win nil t)) (wx (if (= (length --cl-rest--) 4) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...))) (signal 'wrong-number-of-arguments (list '... (length --cl-rest--))))) (wy (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (_ (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (_ (car-safe --cl-rest--))) (list (window-frame win) (+ wx x) (+ wy y))))
  (let* ((e d12)) (let* ((end (event-end e)) (win (posn-window end)) (x (car (posn-x-y end))) (y (cdr (posn-x-y end)))) (let* ((--cl-rest-- (window-edges win nil t)) (wx (if (= (length --cl-rest--) 4) (car-safe (prog1 --cl-rest-- ...)) (signal 'wrong-number-of-arguments (list ... ...)))) (wy (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...)))) (_ (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...)))) (_ (car-safe --cl-rest--))) (list (window-frame win) (+ wx x) (+ wy y)))))
  (if (eventp d12) (let* ((e d12)) (let* ((end (event-end e)) (win (posn-window end)) (x (car (posn-x-y end))) (y (cdr (posn-x-y end)))) (let* ((--cl-rest-- (window-edges win nil t)) (wx (if (= ... 4) (car-safe ...) (signal ... ...))) (wy (car-safe (prog1 --cl-rest-- ...))) (_ (car-safe (prog1 --cl-rest-- ...))) (_ (car-safe --cl-rest--))) (list (window-frame win) (+ wx x) (+ wy y))))) (let ((d11 pos)) (if (and (consp d11) (and (consp (car d11)) (numberp (car (car d11))) (numberp (cdr (car d11)))) (and (consp (cdr d11)) (windowp (car (cdr d11))))) (let* ((win (car (cdr d11))) (y (cdr (car d11))) (x (car (car d11)))) (let* ((--cl-rest-- (window-edges win nil t)) (wx (if ... ... ...)) (wy (car-safe ...)) (_ (car-safe ...)) (_ (car-safe --cl-rest--))) (list (window-frame win) (+ wx x) (+ wy y)))) (let ((d10 pos)) (if (and (consp d10) (and (consp ...) (numberp ...) (consp ...) (numberp ...) (null ...)) (and (consp ...) (framep ...))) (let* ((frame ...) (y ...) (x ...)) (list frame x y)) (let ((d9 pos)) (if (and ... ... ...) (let* ... ...) (let ... ...))))))))
  (let ((d12 pos)) (if (eventp d12) (let* ((e d12)) (let* ((end (event-end e)) (win (posn-window end)) (x (car (posn-x-y end))) (y (cdr (posn-x-y end)))) (let* ((--cl-rest-- (window-edges win nil t)) (wx (if ... ... ...)) (wy (car-safe ...)) (_ (car-safe ...)) (_ (car-safe --cl-rest--))) (list (window-frame win) (+ wx x) (+ wy y))))) (let ((d11 pos)) (if (and (consp d11) (and (consp (car d11)) (numberp (car ...)) (numberp (cdr ...))) (and (consp (cdr d11)) (windowp (car ...)))) (let* ((win (car ...)) (y (cdr ...)) (x (car ...))) (let* ((--cl-rest-- ...) (wx ...) (wy ...) (_ ...) (_ ...)) (list (window-frame win) (+ wx x) (+ wy y)))) (let ((d10 pos)) (if (and (consp d10) (and ... ... ... ... ...) (and ... ...)) (let* (... ... ...) (list frame x y)) (let (...) (if ... ... ...))))))))
  (if (eq 't d13) (progn (let* ((y (mouse-position)) (frame (if (cdr y) (car-safe (prog1 y ...)) (signal 'wrong-number-of-arguments (list ... ...)))) (x (car-safe (prog1 y (setq y ...))))) (list frame (or x 10) (or y 10)))) (let ((d12 pos)) (if (eventp d12) (let* ((e d12)) (let* ((end (event-end e)) (win (posn-window end)) (x (car ...)) (y (cdr ...))) (let* ((--cl-rest-- ...) (wx ...) (wy ...) (_ ...) (_ ...)) (list (window-frame win) (+ wx x) (+ wy y))))) (let ((d11 pos)) (if (and (consp d11) (and (consp ...) (numberp ...) (numberp ...)) (and (consp ...) (windowp ...))) (let* ((win ...) (y ...) (x ...)) (let* (... ... ... ... ...) (list ... ... ...))) (let ((d10 pos)) (if (and ... ... ...) (let* ... ...) (let ... ...))))))))
  (let ((d13 pos)) (if (eq 't d13) (progn (let* ((y (mouse-position)) (frame (if (cdr y) (car-safe ...) (signal ... ...))) (x (car-safe (prog1 y ...)))) (list frame (or x 10) (or y 10)))) (let ((d12 pos)) (if (eventp d12) (let* ((e d12)) (let* ((end ...) (win ...) (x ...) (y ...)) (let* (... ... ... ... ...) (list ... ... ...)))) (let ((d11 pos)) (if (and (consp d11) (and ... ... ...) (and ... ...)) (let* (... ... ...) (let* ... ...)) (let (...) (if ... ... ...))))))))
  (if (eq 'nil d14) (progn nil) (let ((d13 pos)) (if (eq 't d13) (progn (let* ((y (mouse-position)) (frame (if ... ... ...)) (x (car-safe ...))) (list frame (or x 10) (or y 10)))) (let ((d12 pos)) (if (eventp d12) (let* ((e d12)) (let* (... ... ... ...) (let* ... ...))) (let ((d11 pos)) (if (and ... ... ...) (let* ... ...) (let ... ...))))))))
  (let ((d14 pos)) (if (eq 'nil d14) (progn nil) (let ((d13 pos)) (if (eq 't d13) (progn (let* ((y ...) (frame ...) (x ...)) (list frame (or x 10) (or y 10)))) (let ((d12 pos)) (if (eventp d12) (let* (...) (let* ... ...)) (let (...) (if ... ... ...))))))))
  tty-menu-position((buffer (#<frame F1 0x13906d40> (menu-bar) (18 . 0) 0)))
  (and t (tty-menu-position position))
  (let* ((where (and t (tty-menu-position position)))) (if where (cond ((keymapp menu) (tty-menu-loop menu where)) ((consp menu) (let* ((outer (make-sparse-keymap "outer")) (--cl-var-- menu) (keymap nil) (name nil) (--cl-var-- t)) (while (consp --cl-var--) (setq keymap (car --cl-var--)) (setq name (tty-menu-keymap-name keymap "?")) (define-key outer (vector ...) keymap) (setq --cl-var-- (cdr --cl-var--)) (setq --cl-var-- nil)) (tty-menu-loop outer where) nil)) (t (error "Not a menu: %S" menu)))))
  tty-menu-popup-menu((buffer (#<frame F1 0x13906d40> (menu-bar) (18 . 0) 0)) (keymap "Buffers" [("*scratch*  " . #f(compiled-function () (interactive nil) #<bytecode -0x16623bd101fe3580>)) ("*Messages*  *%" . #f(compiled-function () (interactive nil) #<bytecode -0x16623bd54f393580>))] (command-separator "--") (next-buffer menu-item "Next Buffer" next-buffer :help "Switch to the \"next\" buffer in a cyclic order") (previous-buffer menu-item "Previous Buffer" previous-buffer :help "Switch to the \"previous\" buffer in a cyclic order") (select-named-buffer menu-item "Select Named Buffer..." switch-to-buffer :help "Prompt for a buffer name, and select that buffer in the current window") (list-all-buffers menu-item "List All Buffers" list-buffers :help "Pop up a window listing all Emacs buffers") (select-buffer-in-project menu-item "Select Buffer In Project..." project-switch-to-buffer :help "Prompt for a buffer belonging to current project, and switch to it") (list-buffers-in-project menu-item "List Buffers In Project..." project-list-buffers :help "Pop up a window listing all Emacs buffers belonging to current project")))
  apply(tty-menu-popup-menu ((buffer (#<frame F1 0x13906d40> (menu-bar) (18 . 0) 0)) (keymap "Buffers" [("*scratch*  " . #f(compiled-function () (interactive nil) #<bytecode -0x16623bd101fe3580>)) ("*Messages*  *%" . #f(compiled-function () (interactive nil) #<bytecode -0x16623bd54f393580>))] (command-separator "--") (next-buffer menu-item "Next Buffer" next-buffer :help "Switch to the \"next\" buffer in a cyclic order") (previous-buffer menu-item "Previous Buffer" previous-buffer :help "Switch to the \"previous\" buffer in a cyclic order") (select-named-buffer menu-item "Select Named Buffer..." switch-to-buffer :help "Prompt for a buffer name, and select that buffer in the current window") (list-all-buffers menu-item "List All Buffers" list-buffers :help "Pop up a window listing all Emacs buffers") (select-buffer-in-project menu-item "Select Buffer In Project..." project-switch-to-buffer :help "Prompt for a buffer belonging to current project, and switch to it") (list-buffers-in-project menu-item "List Buffers In Project..." project-list-buffers :help "Pop up a window listing all Emacs buffers belonging to current project"))))
  x-popup-menu((buffer (#<frame F1 0x13906d40> (menu-bar) (18 . 0) 0)) (keymap "Buffers" [("*scratch*  " . #f(compiled-function () (interactive nil) #<bytecode -0x16623bd101fe3580>)) ("*Messages*  *%" . #f(compiled-function () (interactive nil) #<bytecode -0x16623bd54f393580>))] (command-separator "--") (next-buffer menu-item "Next Buffer" next-buffer :help "Switch to the \"next\" buffer in a cyclic order") (previous-buffer menu-item "Previous Buffer" previous-buffer :help "Switch to the \"previous\" buffer in a cyclic order") (select-named-buffer menu-item "Select Named Buffer..." switch-to-buffer :help "Prompt for a buffer name, and select that buffer in the current window") (list-all-buffers menu-item "List All Buffers" list-buffers :help "Pop up a window listing all Emacs buffers") (select-buffer-in-project menu-item "Select Buffer In Project..." project-switch-to-buffer :help "Prompt for a buffer belonging to current project, and switch to it") (list-buffers-in-project menu-item "List Buffers In Project..." project-list-buffers :help "Pop up a window listing all Emacs buffers belonging to current project")))
  popup-menu((keymap "Buffers" [("*scratch*  " . #f(compiled-function () (interactive nil) #<bytecode -0x16623bd101fe3580>)) ("*Messages*  *%" . #f(compiled-function () (interactive nil) #<bytecode -0x16623bd54f393580>))] (command-separator "--") (next-buffer menu-item "Next Buffer" next-buffer :help "Switch to the \"next\" buffer in a cyclic order") (previous-buffer menu-item "Previous Buffer" previous-buffer :help "Switch to the \"previous\" buffer in a cyclic order") (select-named-buffer menu-item "Select Named Buffer..." switch-to-buffer :help "Prompt for a buffer name, and select that buffer in the current window") (list-all-buffers menu-item "List All Buffers" list-buffers :help "Pop up a window listing all Emacs buffers") (select-buffer-in-project menu-item "Select Buffer In Project..." project-switch-to-buffer :help "Prompt for a buffer belonging to current project, and switch to it") (list-buffers-in-project menu-item "List Buffers In Project..." project-list-buffers :help "Pop up a window listing all Emacs buffers belonging to current project")) (#<window 1 on *scratch*> 19 (18 . 0) 0 nil 19 (18 . 0) nil (0 . 0) (1 . 0)) nil t)
  menu-bar-open(nil 18)
  menu-bar-open-mouse((mouse-1 (nil menu-bar (21 . 0) 2424)))
  funcall-interactively(menu-bar-open-mouse (mouse-1 (nil menu-bar (21 . 0) 2424)))
  call-interactively(menu-bar-open-mouse nil nil)
  command-execute(menu-bar-open-mouse)


martin

This bug report was last modified 111 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.