emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 23.0.60; Emacs should survive a lost X connection


From: Stefan Monnier
Subject: Re: 23.0.60; Emacs should survive a lost X connection
Date: Mon, 11 Feb 2008 09:41:29 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.50 (gnu/linux)

>> > emacs -Q -nw -f server-start
>> 
>> > emacsclient -c -d $DISPLAY&
>> 
>> > xkill 
>> > the emacsclient X11 frame
>> 
>> > then C-x C-c in the emacs -nw frame will warn about clients still being
>> > connected.
>> 
>> I installed a patch which refines Richard's fix and brings back the
>> correct "close the client connection" when you close a frame by sending
>> an X11 "delete" message.  This doesn't solve the above problem because
>> in that case, the "delete_frame" execution is run at a time where Elisp
>> cannot be executed.

> Now emacs aborts after emacsclient is xkilled.

There was a trivial typo in my first commit, which I fixed in
a subsequent commit.  You may just have checked it out between the two.
I don't see any crashes here, so please try again,


        Stefan


> Backtrace:

> #0  abort () at /tmp/emacs/src/emacs.c:429
> #1  0x08147ecf in internal_condition_case_2 (bfun=0x81492e0 
> <Frun_hook_with_args>, nargs=2, args=0xbf9f2a18, handlers=137504169, 
>     hfun=0x80596d8 <delete_frame_handler>) at /tmp/emacs/src/eval.c:1568
> #2  0x080598ab in Fdelete_frame (frame=147758716, force=137704913) at 
> /tmp/emacs/src/frame.c:1424
> #3  0x080cb0bd in x_connection_closed (dpy=0x87db258, 
> error_message=0xbf9f2ce0 "Connection lost to X server `:0.0'")
>     at /tmp/emacs/src/xterm.c:8078
> #4  0x080cb332 in x_io_error_quitter (display=0x87db258) at 
> /tmp/emacs/src/xterm.c:8226
> #5  0x00206fc2 in _XIOError () from /usr/lib/libX11.so.6
> #6  0x0020dbb9 in ?? () from /usr/lib/libX11.so.6
> #7  0x0020df9f in _XEventsQueued () from /usr/lib/libX11.so.6
> #8  0x001f76d2 in XPending () from /usr/lib/libX11.so.6
> #9  0x080ca571 in XTread_socket (terminal=0x8b9d2e0, expected=1, 
> hold_quit=0xbf9f2fa0)
>     at /tmp/emacs/src/xterm.c:7408
> #10 0x080f36d7 in read_avail_input (expected=1) at 
> /tmp/emacs/src/keyboard.c:7114
> #11 0x080f39fe in handle_async_input () at /tmp/emacs/src/keyboard.c:7340
> #12 0x080f3a31 in input_available_signal (signo=29) at 
> /tmp/emacs/src/keyboard.c:7382
> #13 <signal handler called>
> #14 0x00110402 in __kernel_vsyscall ()
> #15 0x007eb5bd in ___newselect_nocancel () from /lib/libc.so.6
> #16 0x0817440d in wait_reading_process_output (time_limit=30, microsecs=0, 
> read_kbd=-1, do_display=1, wait_for_cell=137504121, 
>     wait_proc=0x0, just_wait_proc=0) at /tmp/emacs/src/process.c:4586
> #17 0x08057299 in sit_for (timeout=240, reading=1, do_display=1) at 
> /tmp/emacs/src/dispnew.c:6608
> #18 0x080ef072 in read_char (commandflag=1, nmaps=2, maps=0xbf9f3830, 
> prev_event=137504121, used_mouse_menu=0xbf9f3858, 
>     end_time=0x0) at /tmp/emacs/src/keyboard.c:2969
> #19 0x080f6082 in read_key_sequence (keybuf=0xbf9f39a0, bufsize=30, 
> prompt=137504121, dont_downcase_last=0, 
>     can_return_switch_frame=1, fix_current_buffer=1) at 
> /tmp/emacs/src/keyboard.c:9459
> #20 0x080eccf8 in command_loop_1 () at /tmp/emacs/src/keyboard.c:1655
> #21 0x08147d96 in internal_condition_case (bfun=0x80eca38 <command_loop_1>, 
> handlers=137548353, hfun=0x80ec504 <cmd_error>)
>     at /tmp/emacs/src/eval.c:1494
> #22 0x080ec7d6 in command_loop_2 () at /tmp/emacs/src/keyboard.c:1370
> #23 0x08147907 in internal_catch (tag=137543201, func=0x80ec7b8 
> <command_loop_2>, arg=137504121)
>     at /tmp/emacs/src/eval.c:1230
> #24 0x080ec764 in command_loop () at /tmp/emacs/src/keyboard.c:1349
> #25 0x080ec188 in recursive_edit_1 () at /tmp/emacs/src/keyboard.c:958
> #26 0x080ec2c8 in Frecursive_edit () at /tmp/emacs/src/keyboard.c:1020
> #27 0x080eb15b in main (argc=5, argv=0xbf9f3f94) at 
> /tmp/emacs/src/emacs.c:1786




reply via email to

[Prev in Thread] Current Thread [Next in Thread]