Subject: Re: bug#23583: 24.5; Freeze when calling ediff in fs-mode in i3wm

From: Benjamin Riefenstahl <[email-masked]>
Date: Sun, 31 Jul 2016 15:31:16 +0200

> On Fri, Jun 3, 2016 at 7:25 PM, Noam Postavsky
> <[email-masked]> wrote:
>> I don't get a freeze, instead Emacs exits immediately with error
>>
>> X protocol error: BadValue (integer parameter out of range for
>> operation) on protocol request 12

Noam Postavsky <[email-masked]> writes:
> ~/src/emacs/emacs-25/src$ ./emacs -Q -f toggle-frame-fullscreen --eval
> '(make-frame-visible (make-frame))'
> X protocol error: BadValue (integer parameter out of range for
> operation) on protocol request 12

I also get a freeze with this recipe, "freeze" meaning no response to
normal keystrokes, incomplete screen redraw.  I'm attaching a
size-reduced screenshot.  I get out of that state by pressing C-g four
times.

When I connect to the Emacs in this state with gdb, I get the stacktrace
below.  It seems that make-frame-visible is waiting for some answer that
does not come from X11 or the display manager.

I am testing with Emacs from Git here, head of branch emacs-25, i3-wm
4.8, Debian GNU/Linux 8.5 (jessie), X.org 1.16.4.

    Breakpoint 1 at 0x811fc80: file emacs.c, line 353.
    Temporary breakpoint 2 at 0x81374c0: file sysdep.c, line 911.
    (gdb) thread apply all bt

    [...]

    Thread 1 (Thread 0xb5dce8c0 (LWP 7220)):
    #0  0xb77cad40 in __kernel_vsyscall ()
    #1  0xb634369b in poll () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
    #2  0xb60fd77d in ?? () from /usr/lib/i386-linux-gnu/libxcb.so.1
    #3  0xb60ff4d6 in ?? () from /usr/lib/i386-linux-gnu/libxcb.so.1
    #4  0xb60ff62b in xcb_wait_for_reply () from /usr/lib/i386-linux-gnu/libxcb.so.1
    #5  0xb69418e6 in _XReply () from /usr/lib/i386-linux-gnu/libX11.so.6
    #6  0xb693d0ff in XSync () from /usr/lib/i386-linux-gnu/libX11.so.6

    #7  0x08107c63 in x_sync (f=0xa470ef8) at xfns.c:5046
    #8  0x080fde04 in x_make_frame_visible (f=0xa470ef8) at xterm.c:11002
    #9  0x08062fa9 in Fmake_frame_visible (frame=172429053) at frame.c:2063
    #10 0x0818c853 in Ffuncall (nargs=2, args=0xbfb61b04) at eval.c:2693
    #11 0x081be4ed in exec_byte_code (bytestr=<optimized out>, vector=137286789, maxdepth=18, args_template=0, nargs=0, 
        args=<optimized out>) at bytecode.c:880
    #12 0x0818c30b in funcall_lambda (fun=1, nargs=-1, nargs@entry=1, arg_vector=0x1, arg_vector@entry=0xbfb61c6c) at eval.c:2921
    #13 0x0818c6c1 in Ffuncall (nargs=2, args=0xbfb61c68) at eval.c:2754
    #14 0x081be4ed in exec_byte_code (bytestr=<optimized out>, vector=139388773, maxdepth=14, args_template=1030, nargs=1, 
        args=<optimized out>) at bytecode.c:880
    #15 0x0818c41f in funcall_lambda (fun=1, nargs=-1, nargs@entry=1, arg_vector=0x1, arg_vector@entry=0xbfb61e74) at eval.c:2855
    #16 0x0818c6c1 in Ffuncall (nargs=2, args=0xbfb61e70) at eval.c:2754
    #17 0x0818db1f in Fapply (nargs=2, args=0xbfb61e70) at eval.c:2278
    #18 0x0818c795 in Ffuncall (nargs=3, args=0xbfb61e6c) at eval.c:2673
    #19 0x081be4ed in exec_byte_code (bytestr=<optimized out>, vector=141898765, maxdepth=62, args_template=514, nargs=1, 
        args=<optimized out>) at bytecode.c:880
    #20 0x0818c41f in funcall_lambda (fun=1, nargs=-1, nargs@entry=1, arg_vector=0x1, arg_vector@entry=0xbfb62000) at eval.c:2855
    ---Type <return> to continue, or q <return> to quit---
    #21 0x0818c6c1 in Ffuncall (nargs=2, args=0xbfb61ffc) at eval.c:2754
    #22 0x081be4ed in exec_byte_code (bytestr=<optimized out>, vector=137609677, maxdepth=54, args_template=1026, nargs=0, 
        args=<optimized out>) at bytecode.c:880
    #23 0x0818c41f in funcall_lambda (fun=1, fun@entry=137609629, nargs=-1, nargs@entry=0, arg_vector=0x1, arg_vector@entry=0xbfb62100)
        at eval.c:2855
    #24 0x0818b9ff in apply_lambda (fun=137609629, args=<optimized out>, count=count@entry=13) at eval.c:2794
    #25 0x0818bcfb in eval_sub (form=143198699) at eval.c:2241
    #26 0x0818bd71 in eval_sub (form=143198763) at eval.c:2154
    #27 0x0818f062 in Feval (form=143198763, lexical=0) at eval.c:1988
    #28 0x0818c842 in Ffuncall (nargs=2, args=0xbfb62308) at eval.c:2696
    #29 0x081be4ed in exec_byte_code (bytestr=<optimized out>, vector=137639253, maxdepth=90, args_template=1030, nargs=1, 
        args=<optimized out>) at bytecode.c:880
    #30 0x0818c41f in funcall_lambda (fun=1, nargs=-1, nargs@entry=1, arg_vector=0x1, arg_vector@entry=0xbfb62478) at eval.c:2855
    #31 0x0818c6c1 in Ffuncall (nargs=2, args=0xbfb62474) at eval.c:2754
    #32 0x081be4ed in exec_byte_code (bytestr=<optimized out>, vector=137627557, maxdepth=86, args_template=2, nargs=0, 
        args=<optimized out>) at bytecode.c:880
    #33 0x0818c41f in funcall_lambda (fun=1, nargs=-1, nargs@entry=0, arg_vector=0x1, arg_vector@entry=0xbfb6261c) at eval.c:2855
    #34 0x0818c6c1 in Ffuncall (nargs=1, args=0xbfb62618) at eval.c:2754
    #35 0x081be4ed in exec_byte_code (bytestr=<optimized out>, vector=137625549, maxdepth=50, args_template=2, nargs=0, 
        args=<optimized out>) at bytecode.c:880
    #36 0x0818c41f in funcall_lambda (fun=1, fun@entry=137625509, nargs=-1, nargs@entry=0, arg_vector=0x1, arg_vector@entry=0xbfb62730)
        at eval.c:2855
    #37 0x0818b9ff in apply_lambda (fun=137625509, args=<optimized out>, count=count@entry=4) at eval.c:2794
    #38 0x0818bcfb in eval_sub (form=141884563) at eval.c:2241
    #39 0x0818f062 in Feval (form=141884563, lexical=0) at eval.c:1988
    #40 0x081201c0 in top_level_2 () at keyboard.c:1116
    #41 0x0818b424 in internal_condition_case (bfun=0x81201b0 <top_level_2>, handlers=9528, hfun=0x8124610 <cmd_error>) at eval.c:1309
    #42 0x08122bb7 in top_level_1 (ignore=0) at keyboard.c:1124
    #43 0x0818b3bb in internal_catch (tag=22920, func=0x8122b50 <top_level_1>, arg=0) at eval.c:1074
    #44 0x08120146 in command_loop () at keyboard.c:1085
    #45 0x08124282 in recursive_edit_1 () at keyboard.c:692
    #46 0x08124567 in Frecursive_edit () at keyboard.c:763
    #47 0x080580a9 in main (argc=<optimized out>, argv=0xbfb629f4) at emacs.c:1626

    Lisp Backtrace:
    "make-frame-visible" (0xbfb61b08)
    "x-create-frame-with-faces" (0xbfb61c6c)
    0x8826480 PVEC_COMPILED
    "apply" (0xbfb61e70)
    "frame-creation-function" (0xbfb62000)
    "make-frame" (0xbfb62100)
    "make-frame-visible" (0xbfb621fc)
    "eval" (0xbfb6230c)
    "command-line-1" (0xbfb62478)
    "command-line" (0xbfb6261c)
    "normal-top-level" (0xbfb62730)
    (gdb)