From: "Alex Bennée" <alex.bennee@linaro.org>
To: Andreas Schwab <schwab@suse.de>
Cc: Emacs Developers <emacs-devel@gnu.org>
Subject: Re: Terminal locked when spawning a new tty frame
Date: Wed, 06 Nov 2019 17:17:22 +0000 [thread overview]
Message-ID: <87eeykj55p.fsf@linaro.org> (raw)
In-Reply-To: <87r233mjy4.fsf@linaro.org>
Alex Bennée <alex.bennee@linaro.org> writes:
> Andreas Schwab <schwab@suse.de> writes:
>
>> On Okt 23 2019, Alex Bennée wrote:
>>
>>> #13 0x000055ed55d1f5f6 in recursive_edit_1 () at keyboard.c:714
>>> #14 0x000055ed55d1f915 in Frecursive_edit () at keyboard.c:786
>>> #15 0x000055ed55d8e2a3 in Ffuncall (nargs=1, args=args@entry=0x7ffd0aca1ca8) at lisp.h:2109
>>> #16 0x000055ed55dc1d51 in exec_byte_code (bytestr=<optimized out>, vector=<optimized out>, maxdepth=<optimized out>, args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>) at bytecode.c:633
>>> #17 0x000055ed55d8e1ff in Ffuncall (nargs=3, args=0x7ffd0aca2060) at eval.c:2808
>>> #18 0x000055ed55d8e532 in Fapply (nargs=nargs@entry=2, args=args@entry=0x7ffd0aca20f0) at eval.c:2424
>>> #19 0x000055ed55d8e66c in apply1 (fn=<optimized out>, arg=arg@entry=0x55ed5d981de3) at lisp.h:1399
>>> #20 0x000055ed55d8e858 in call_debugger (arg=0x55ed5d981de3) at eval.c:339
>>> #21 0x000055ed55d8ef01 in maybe_call_debugger (data=0x55ed5d1a9ec3, sig=0xe520, conditions=0x7f26ae4ed72b) at lisp.h:1032
>>> #22 0x000055ed55d8ef01 in signal_or_quit (error_symbol=0xe520, data=0x55ed5d1a9ec3, keyboard_quit=<optimized out>) at eval.c:1666
>>> #23 0x000055ed55c44214 in Fsignal (error_symbol=<optimized out>, error_symbol@entry=0xe520, data=<optimized out>) at eval.c:1568
>>
>> So you have a frame inside the debugger, probably because debug-on-error
>> is non-nil.
>
> I'll check next time. I might of knocked it on by mistake. The other
> Andrés mentioned one workaround was killing an errant *Backtrace* but I
> must admit I didn't check if the debugger was active during the
> failure.
So I have a reproducer and sure enough the *Backtrace* buffer was at:
Debugger entered--Lisp error: (quit)
irony-iotask-run(#<process Irony> #s(irony-iotask-packaged-task :task (:start (lambda (process buffer) (if (assq buffer (process-get process :unsaved-buffers)) (irony--server-send-command "reset-unsaved" (irony--get-buffer-path-for-server buffer)) (irony-iotask-set-result t))) :update irony--server-command-update :finish (lambda (process buffer) (process-put process :unsaved-buffers (assq-delete-all buffer (process-get process :unsaved-buffers))))) :args (#<process Irony> #<buffer helper.c>) :result #s(irony-iotask-result :-tag nil :-value nil :-error nil :-error-data nil) :plist nil :continuation #s(irony-iotask-packaged-task :task (:start (lambda (process buffer buf-state) (let ((elem ...) temp-file) (if (eq ... buf-state) (irony-iotask-set-result t) (setq temp-file ...) (irony-iotask-put :temp-file temp-file) (irony-iotask-put :buffer-state buf-state) (process-put process :buffer-state buf-state) (with-current-buffer buffer ... ...)))) :update irony--server-command-update :finish (lambda (&rest _args) (delete-file (irony-iotask-get :temp-file))) :on-success (lambda (process buffer &rest _args) (let* ((unsaved-buffers ...) (elem ...) (buf-state ...)) (if elem (setcdr elem buf-state) (process-put process :unsaved-buffers ...))))) :args (#<process Irony> #<buffer gdbstub.c<arm>> #s(irony--buffer-state :file "/home/alex/lsrc/qemu.git/target/arm/gdbstub.c" :exists t :modified t :tick 3269)) :result #s(irony-iotask-result :-tag nil :-value nil :-error nil :-error-data nil) :plist nil :continuation #s(irony-iotask-packaged-task :task (:start (lambda (file line column compile-options) (apply #'irony--server-send-command "complete" file line column "--" compile-options)) :update irony--server-command-update) :args ("/home/alex/lsrc/qemu.git/target/arm/gdbstub.c" 173 10 ("-x" "c")) :result #s(irony-iotask-result :-tag nil :-value nil :-error nil :-error-data nil) :plist nil :continuation #s(irony-iotask-packaged-task :task (:start (lambda (prefix style) (irony--server-send-command "candidates" prefix ...)) :update irony--server-query-update) :args ("dyn_svereg_xml" exact) :result #s(irony-iotask-result :-tag nil :-value nil :-error nil :-error-data nil) :plist nil :continuation nil)))))
irony--run-task(#s(irony-iotask-packaged-task :task (:start (lambda (process buffer) (if (assq buffer (process-get process :unsaved-buffers)) (irony--server-send-command "reset-unsaved" (irony--get-buffer-path-for-server buffer)) (irony-iotask-set-result t))) :update irony--server-command-update :finish (lambda (process buffer) (process-put process :unsaved-buffers (assq-delete-all buffer (process-get process :unsaved-buffers))))) :args (#<process Irony> #<buffer helper.c>) :result #s(irony-iotask-result :-tag nil :-value nil :-error nil :-error-data nil) :plist nil :continuation #s(irony-iotask-packaged-task :task (:start (lambda (process buffer buf-state) (let ((elem ...) temp-file) (if (eq ... buf-state) (irony-iotask-set-result t) (setq temp-file ...) (irony-iotask-put :temp-file temp-file) (irony-iotask-put :buffer-state buf-state) (process-put process :buffer-state buf-state) (with-current-buffer buffer ... ...)))) :update irony--server-command-update :finish (lambda (&rest _args) (delete-file (irony-iotask-get :temp-file))) :on-success (lambda (process buffer &rest _args) (let* ((unsaved-buffers ...) (elem ...) (buf-state ...)) (if elem (setcdr elem buf-state) (process-put process :unsaved-buffers ...))))) :args (#<process Irony> #<buffer gdbstub.c<arm>> #s(irony--buffer-state :file "/home/alex/lsrc/qemu.git/target/arm/gdbstub.c" :exists t :modified t :tick 3269)) :result #s(irony-iotask-result :-tag nil :-value nil :-error nil :-error-data nil) :plist nil :continuation #s(irony-iotask-packaged-task :task (:start (lambda (file line column compile-options) (apply #'irony--server-send-command "complete" file line column "--" compile-options)) :update irony--server-command-update) :args ("/home/alex/lsrc/qemu.git/target/arm/gdbstub.c" 173 10 ("-x" "c")) :result #s(irony-iotask-result :-tag nil :-value nil :-error nil :-error-data nil) :plist nil :continuation #s(irony-iotask-packaged-task :task (:start (lambda (prefix style) (irony--server-send-command "candidates" prefix ...)) :update irony--server-query-update) :args ("dyn_svereg_xml" exact) :result #s(irony-iotask-result :-tag nil :-value nil :-error nil :-error-data nil) :plist nil :continuation nil)))))
irony-completion-at-point()
completion--capf-wrapper(irony-completion-at-point optimist)
run-hook-wrapped(completion--capf-wrapper irony-completion-at-point optimist)
company--capf-data-real()
company--capf-data()
company-capf(prefix)
apply(company-capf prefix)
company-call-backend-raw(prefix)
apply(company-call-backend-raw prefix)
company--force-sync(company-call-backend-raw (prefix) company-capf)
company-call-backend(prefix)
company--begin-new()
company--perform()
company-auto-begin()
company-idle-begin(#<buffer gdbstub.c<arm>> #<window 806 on gdbstub.c<arm>> 3269 5417)
apply(company-idle-begin (#<buffer gdbstub.c<arm>> #<window 806 on gdbstub.c<arm>> 3269 5417))
timer-event-handler([t 24001 55199 331097 nil company-idle-begin (#<buffer gdbstub.c<arm>> #<window 806 on gdbstub.c<arm>> 3269 5417) nil 869000])
read-event(nil t 3)
sit-for(3)
flyspell-check-word-p()
flyspell-post-command-hook()
Killing the *Backtrace* buffer restores things to working. It doesn't
seem to be specific to the backtrace as I can C-g while switching
buffers and get:
Debugger entered--Lisp error: (quit)
read-from-minibuffer("Switch to buffer: " nil (keymap (keymap (11 . ivy-switch-buffer-kill)) keymap (36 . ivy-magic-read-file-env) (3 keymap (19 . ivy-rotate-sort) (1 . ivy-toggle-ignore) (15 . ivy-occur)) (67108903 . ivy-avy) (33554464 . ivy-restrict-to-matches) (15 . hydra-ivy/body) (22 . ivy-scroll-up-command) (prior . ivy-scroll-down-command) (next . ivy-scroll-up-command) (7 . minibuffer-keyboard-quit) (right . ivy-forward-char) (32 . self-insert-command) (18 . ivy-reverse-i-search) (19 . ivy-next-line-or-history) (remap keymap (describe-mode . ivy-help) (kill-ring-save . ivy-kill-ring-save) (kill-whole-line . ivy-kill-whole-line) (kill-line . ivy-kill-line) (scroll-down-command . ivy-scroll-down-command) (scroll-up-command . ivy-scroll-up-command) (end-of-buffer . ivy-end-of-buffer) (beginning-of-buffer . ivy-beginning-of-buffer) (kill-word . ivy-kill-word) (forward-char . ivy-forward-char) (delete-char . ivy-delete-char) (backward-kill-word . ivy-backward-kill-word) (backward-delete-char-untabify . ivy-backward-delete-char) (delete-backward-char . ivy-backward-delete-char) (previous-line . ivy-previous-line) (next-line . ivy-next-line)) (9 . ivy-partial-or-done) (10 . ivy-alt-done) (27 keymap (1 . ivy-read-action) (15 . ivy-dispatching-call) (111 . ivy-dispatching-done) (25 . ivy-insert-current-full) (105 . ivy-insert-current) (106 . ivy-yank-word) (114 . ivy-toggle-regexp-quote) (16 . ivy-previous-line-and-call) (14 . ivy-next-line-and-call) (118 . ivy-scroll-down-command) (112 . ivy-previous-history-element) (110 . ivy-next-history-element) (10 . ivy-immediate-done) (13 . ivy-call)) (mouse-3 . ivy-mouse-dispatching-done) (mouse-1 . ivy-mouse-done) (down-mouse-1 . ignore) (13 . ivy-done)) nil ivy-history)
ivy-read("Switch to buffer: " internal-complete-buffer :keymap (keymap (11 . ivy-switch-buffer-kill)) :preselect "*Backtrace*" :action ivy--switch-buffer-action :matcher ivy--switch-buffer-matcher :caller ivy-switch-buffer)
ivy-switch-buffer()
funcall-interactively(ivy-switch-buffer)
call-interactively(ivy-switch-buffer nil nil)
command-execute(ivy-switch-buffer)
And the same hang will be observed - although in the above case if you
complete the buffer selection the hang goes away and the new terminal
window is usable.
>
>>
>> Andreas.
--
Alex Bennée
next prev parent reply other threads:[~2019-11-06 17:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-16 9:56 Terminal locked when spawning a new tty frame Alex Bennée
2019-10-16 10:25 ` Andreas Schwab
2019-10-23 13:31 ` Alex Bennée
2019-10-23 15:38 ` Andreas Schwab
2019-10-23 16:43 ` Alex Bennée
2019-10-23 16:58 ` Andreas Schwab
2019-10-23 17:48 ` Alex Bennée
2019-11-06 17:17 ` Alex Bennée [this message]
2019-10-16 15:12 ` rrandresf
2019-10-16 15:48 ` Eli Zaretskii
2019-10-17 4:47 ` opening an emacs frame on another display (was: Terminal locked when spawning a new tty frame) andrés ramírez
2019-10-17 8:24 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87eeykj55p.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=emacs-devel@gnu.org \
--cc=schwab@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.