Subject: Re: bug#17170: 24.3.50; debug: Terminal 3 is locked, cannot read from it

From: Nicolas Richard <[email-masked]>
Date: Sun, 06 Apr 2014 12:08:31 +0200

Eli Zaretskii <[email-masked]> writes:
> Please try "C-h l" next time, and report the commands that cause this.

It just happened again. Again, I'm in emacs -nw through gdb through tmux
through ssh. Again, I apparently have left one GUI frame open on my
remote box.

When I saw the error, I did:
C-x C-k e		;; edit-kbd-macro
C-h l			;; view-lossage

The output isn't very interesting because most command names are wrong
(everytime I hit an arrow key, it reports "ESC O" then one of A B C D
separately), but here's the last bits :

C-c NUL			;; rcirc-next-active-buffer
C-x K
C-u C-u C-c NUL		;; rcirc-next-active-buffer
C-z			;; suspend-frame
C-x C-k e		;; edit-kbd-macro
C-h l			;; view-lossage

The error appeared when I did C-z for suspend-frame. "C-x K" kills
current buffer.

Note that suspend-frame makes an error:
x-win-suspend-error: Cannot suspend Emacs while running under X

If I do M-: (debug) RET, I get the "Terminal locked" message, and enter
another level of recursive edit and can't exit it (because of "No catch
for tag: exit").

At this moment I have three pairs of brackets in the modeline.

Now, I deleted the distant graphical frame (with (delete-frame (car
(frame-list))))

At this point M-: (debug) doesn't throw the terminal locked error
anymore and enter the debugger correctly (entering a 4th pair of
brackets ), and I can exit the debugger correctly too, but I'm stuck
within those 3 pairs of brackets. So it seems that the remote graphical
frame really was a problem and entered me into a weird state.

-- 
Nico.