Subject: bug#8472: 24.0.50; weird emacs bugs causing data lossage

From: Eli Zaretskii <[email-masked]>
Date: Mon, 11 Apr 2011 03:56:42 -0400

> From: [email-masked]

 you-did-not-set--mail-host-address--so-i'm-tickling-you

> Date: Sun, 10 Apr 2011 21:39:55 +0200
> Cc: 
> 
> Emacs ask if I really want to edit the buffer and I say
> no. Then Emacs redisplay seems to hang.
> 
> This happened several times. Most times I had to kill emacs and loose
> my work. This time I tried more debugging. Lately I run Emacs in a
> debugger. Weirdly gdb refused to break itho a prompt. ctrl z and fg
> woke up gdb.

That might mean that Emacs was stuck in a system call.  But the fact
that it responded to emacsclient eliminates this possibility, I think.

I would try delivering a fatal signal to Emacs ("kill -TERM", for
example) from the shell prompt.  Detaching the debugger under which
you ran Emacs and attaching another instance of GDB is another thing
to try.

> it occured to me that maybe Emacs wasnt totaly hung maybe just
> redisplay.

I don't see how this can be true.  If redisplay infloops, it will
never return, and the rest of Emacs will never get to do anything,
including the calls to `select' that you saw in strace.

> So I tested emacs client and I could recover data like
> this:
> 
>  emacsclient -e "(let ((b (set-buffer \"journal.org\")) (text  (buffer-string))) (set-text-properties 0 (length text) nil text)text)"

Now I don't understand how come you couldn't break into it from GDB.

> There are two weird things here:
> - the file was truncated. Maybe this is due to a combination of
>   narrowing and automatic save.

Can't happen, auto-save forces temporary widening of the buffer (as
you'd expect ;-).

> - redisplay hangs in minibuffer input. I have no idea about why this
>   happens.

Doesn't seem to be the case, see above.

Best thing to try next time is somehow to stop Emacs, and then use the
procedure described in etc/DEBUG under "If the symptom of the bug is
that Emacs fails to respond".