On 13/10/16 16:14, George Dunlap wrote: > On 17/11/15 23:53, Rob Browning wrote: >> George Dunlap <george.dun...@citrix.com> writes: >> >>> Two months ago I switched from Ubuntu to Debian Jessie, using the >>> default install (Gnome 3, systemd, &c). Since that time, every few >>> days the emacs UI freezes and becomes completely unresponsive. >> >> If possible, could you try emacs24-lucid instead of emacs24 and see if >> that helps? I'm wondering this migh be a known GTK+ bug. From the >> emacs24-lucid description: >> >> This package contains a version of Emacs with support for a graphical >> user interface based on the Lucid toolkit (instead of the GTK+ >> interface provided by the emacs24 package). Until some known GTK+ >> problems are fixed, this version may help avoid crashing Emacs during >> an emacsclient disconnect. See >> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=567934 and >> https://bugzilla.gnome.org/show_bug.cgi?id=85715 for more information. > > I've still been having this issue pretty regularly (now again back to > several times per week, even with emacs24-lucid).
Actually there seem to be several slightly different bugs. :-/ I've gotten several hangs with a crash trace like the following. It appears that when redrawing a window, it sets the position of the cursor (xterm.c:733); and because X has support for internationalization, it wants to set the position of the "pre-edit area" -- presumably where the pop-up should appear if you're typing something like Chinese (xfns.c:2107), and so sets the values by calling the X library function XSetICValues. This for some reason blocks in poll() and never returns. It seems possible this might actually be a bug in the X library -- worth bringing in someone from the X team? -George
#0 0x00007f1f50983aed in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f1f50055252 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #2 0x00007f1f50056ddf in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #3 0x00007f1f55286008 in _XReadEvents (dpy=dpy@entry=0x13cda70) at ../../src/xcb_io.c:401 #4 0x00007f1f5526d9c9 in XIfEvent (dpy=0x13cda70, event=0x7ffea1abd5d0, predicate=0x7f1f552b6070 <_CheckCMEvent>, arg=0x13eae40 "`&XU\037\177") at ../../src/IfEvent.c:68 #5 0x00007f1f552b67e7 in _XimXRead (im=0x13eae40, recv_buf=0x7ffea1abe1f0 "", buf_len=2048, ret_len=0x7ffea1abd704) at ../../../../modules/im/ximcp/imTrX.c:476 #6 0x00007f1f552b7437 in _XimReadData (im=im@entry=0x13eae40, len=len@entry=0x7ffea1abd766, buf=buf@entry=0x7ffea1abe1f0 "", buf_size=buf_size@entry=2048) at ../../../../modules/im/ximcp/imTransR.c:165 #7 0x00007f1f552b7701 in _XimRead (im=im@entry=0x13eae40, len=len@entry=0x7ffea1abd7fe, buf=buf@entry=0x7ffea1abe1f0 "", buf_size=buf_size@entry=2048, predicate=predicate@entry=0x7f1f552a4c60 <_XimSetICValuesCheck>, arg=arg@entry=0xc3e820 "") at ../../../../modules/im/ximcp/imTransR.c:235 #8 0x00007f1f552a5a86 in _XimProtoSetICValues (xic=0xc3e820, arg=<optimized out>) at ../../../../modules/im/ximcp/imDefIc.c:778 #9 0x00007f1f5529314d in XSetICValues (ic=0xc3e820) at ../../../src/xlibi18n/ICWrap.c:332 #10 0x00000000004cf8f9 in xic_set_preeditarea (w=<optimized out>, x=<optimized out>, y=<optimized out>) at xfns.c:2107 #11 0x00000000004bc742 in x_draw_window_cursor (w=0x3ce5600, glyph_row=0x3449210, x=216, y=910, cursor_type=FILLED_BOX_CURSOR, cursor_width=67632640, on_p=true, active_p=true) at xterm.c:7331 #12 0x0000000000456a10 in display_and_set_cursor (w=0x3ce5600, on=on@entry=true, hpos=27, vpos=70, x=216, y=910) at xdisp.c:27572 #13 0x00000000004bb5dc in x_update_window_end (w=0x3ce5600, cursor_on_p=<optimized out>, mouse_face_overwritten_p=<optimized out>) at xterm.c:582 #14 0x0000000000419816 in update_window (w=w@entry=0x3ce5600, force_p=<optimized out>, force_p@entry=true) at dispnew.c:3535 #15 0x000000000041aaeb in update_window_tree (w=w@entry=0x3ce5600, force_p=force_p@entry=true) at dispnew.c:3210 #16 0x000000000041d0ce in update_frame (f=0x1173ae8, force_p=<optimized out>, inhibit_hairy_id_p=<optimized out>) at dispnew.c:3099 #17 0x000000000044f61e in redisplay_internal () at xdisp.c:14030 #18 0x000000000044fb85 in redisplay_preserve_echo_area (from_where=from_where@entry=8) at xdisp.c:14185 #19 0x00000000004eb6e3 in detect_input_pending_run_timers (do_display=do_display@entry=true) at keyboard.c:9897 #20 0x00000000005911e1 in wait_reading_process_output (time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true, wait_for_cell=12323826, wait_proc=wait_proc@entry=0x0, just_wait_proc=0) at process.c:4702 #21 0x000000000041df63 in sit_for (timeout=<optimized out>, reading=reading@entry=true, display_option=display_option@entry=1) at dispnew.c:5861 #22 0x00000000004ec5c3 in read_char (commandflag=1, map=map@entry=54254438, prev_event=12323826, used_mouse_menu=used_mouse_menu@entry=0x7ffea1ac031b, end_time=end_time@entry=0x0) at keyboard.c:2809 #23 0x00000000004ed80f in read_key_sequence (keybuf=keybuf@entry=0x7ffea1ac03f0, prompt=12323826, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, bufsize=30) at keyboard.c:9088 #24 0x00000000004ef580 in command_loop_1 () at keyboard.c:1452 #25 0x00000000005520b7 in internal_condition_case (bfun=bfun@entry=0x4ef380 <command_loop_1>, handlers=<optimized out>, hfun=hfun@entry=0x4e6470 <cmd_error>) at eval.c:1348 #26 0x00000000004e19fe in command_loop_2 (ignore=ignore@entry=12323826) at keyboard.c:1177 #27 0x0000000000551f9b in internal_catch (tag=12371298, func=func@entry=0x4e19e0 <command_loop_2>, arg=12323826) at eval.c:1112 #28 0x00000000004e6087 in command_loop () at keyboard.c:1156 #29 recursive_edit_1 () at keyboard.c:777 #30 0x00000000004e63a0 in Frecursive_edit () at keyboard.c:848 #31 0x0000000000413ed1 in main (argc=0, argv=0x7ffea1ac0758) at emacs.c:1646