[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8472: 24.0.50; weird emacs bugs causing data lossage
From: |
Eli Zaretskii |
Subject: |
bug#8472: 24.0.50; weird emacs bugs causing data lossage |
Date: |
Mon, 11 Apr 2011 03:56:42 -0400 |
> From: joakim@chopper.i-did-not-set--mail-host-address--so-tickle-me
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".