bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#12007: 24.1.50; Crash in auto-revert-handler


From: Dmitry Antipov
Subject: bug#12007: 24.1.50; Crash in auto-revert-handler
Date: Sun, 22 Jul 2012 08:11:57 +0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120713 Thunderbird/14.0

On 07/21/2012 05:51 PM, Eli Zaretskii wrote:

From: Christoph Scholtes <cschol2112@googlemail.com>
Date: Sat, 21 Jul 2012 07:17:07 -0600

Emacs seems to have crashed while executing the auto-revert-function. I
was not working on anything at that moment and Emacs was minimized.

Eli, gdb session is available. :)

Thanks, but this looks like a completely different crash, it happened
inside GC:

#1  0x0114fabd in w32_abort () at w32fns.c:7183
         button = 6
#2  0x01041cc6 in die (
     msg=0x152fa40 "assertion failed: buffer->base_buffer->indirections > 0",
     file=0x152d874 "buffer.c", line=1454) at alloc.c:6701
No locals.
#3  0x010a9ab1 in compact_buffer (buffer=0x10847c00) at buffer.c:1454
No locals.
#4  0x0103ef10 in Fgarbage_collect () at alloc.c:5416  <<<<<<<<<<<<<<<<<<<

The failed assertion seems to point to the latest changes which added
buffer indirection counting.  Dmitry, could you please take a look?
You can ask Christoph to look around in the crashed session, since it
is still runs under GDB.

Most probably this is a fix:

=== modified file 'src/buffer.c'
--- src/buffer.c        2012-07-20 16:05:47 +0000
+++ src/buffer.c        2012-07-22 04:08:08 +0000
@@ -2145,6 +2145,7 @@
   swapfield (zv_byte, ptrdiff_t);
   eassert (!current_buffer->base_buffer);
   eassert (!other_buffer->base_buffer);
+  swapfield (indirections, ptrdiff_t);
   current_buffer->clip_changed = 1; other_buffer->clip_changed = 1;
   swapfield (newline_cache, struct region_cache *);
   swapfield (width_run_cache, struct region_cache *);

Christoph, can you try it?

Dmitry





reply via email to

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