emacs-devel
[Top][All Lists]
Advanced

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

Re: emacs 24 randomly hanging


From: Dan Nicolaescu
Subject: Re: emacs 24 randomly hanging
Date: Tue, 21 Feb 2012 10:41:35 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

Adam <address@hidden> writes:

> Adam <address@hidden> writes:
>
>> I am using GNU Emacs 24.0.93.1 (x86_64-unknown-linux-gnu, GTK+ Version
>> 2.20.1) of 2012-02-15, built from sources.
>>
>> I am constantly experiencing my emacs hanging.  That is, C-g does not
>> work, and the screen is not updated.  It happens about twice a day or
>> so, which is very annoying, as I only have one emacs instance up
>> and running in which I am doing all my work.
>>
>> I am pretty sure emacs hanging has been discussed to death, and I am
>> pretty sure I just screwed my emacs configuration up somewhere.  What's
>> worring me is that C-g does not work, though.  In fact, nothing works.
>> I have to send a SIGKILL to my emacs process to get rid of it.
>>
>> Here's a backtrace:
>
> [...]
>
>> (I am running emacs in daemon mode with about three or five open X11
>> clients.  Although the backtrace references Fx_create_frame, I *did* not
>> create a frame.  I am using a tight intergration between my window
>> manager and emacs though, and my window manager spawns about two
>> `emacsclient -e' per second).
>>
>> Is this problem known?  Could this be fixed in emacs 24?
>
> I am able to reproduce my problem with emacs -q.
>
> #+BEGIN_SRC sh
> #!/bin/bash
>
> killall -9 emacsclient
>
> emacs -q --daemon || exit 1
>
> emacsclient -e "(progn (require 'cl)
> (defun walk-frames ()
>  (loop for frame being the frames))
> (add-hook 'window-configuration-change-hook 'walk-frames))"
>
> for I in {1..100}
> do
>     echo $I
>     emacsclient -e "(walk-frames)" >/dev/null &
>     emacsclient -c -e "(delete-frame)" >/dev/null &
> done
>
> wait
>
> emacsclient -e "(kill-emacs 0)"
> #+END_SRC

I can reproduce this.

It looks like there's an infinite loop in frame.c:next_frame.
Maybe the frame list is not completely initialized when this code is
run, there's a comment about looping forever in the function.
Unfortunately I don't have time to dig more.



reply via email to

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