GNU bug report logs - #12007
24.1.50; Crash in auto-revert-handler

Previous Next

Package: emacs;

Reported by: Christoph Scholtes <cschol2112 <at> googlemail.com>

Date: Sat, 21 Jul 2012 13:25:02 UTC

Severity: normal

Found in version 24.1.50

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #14 received at 12007 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Christoph Scholtes <cschol2112 <at> googlemail.com>, 12007 <at> debbugs.gnu.org
Subject: Re: bug#12007: 24.1.50; Crash in auto-revert-handler
Date: Sun, 22 Jul 2012 08:11:57 +0400
On 07/21/2012 05:51 PM, Eli Zaretskii wrote:

>> From: Christoph Scholtes <cschol2112 <at> 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




This bug report was last modified 12 years and 331 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.