Subject: Re: bug#18982: 24.4.51; assertion violation in set_cache_region after revert-buffer

From: Nicolas Richard <[email-masked]>
Date: Fri, 07 Nov 2014 15:07:24 +0100

Le 07/11/2014 14:46, Eli Zaretskii a écrit :
> To cause it to be incorrectly decoded, you could do this:
> 
>   C-x RET c raw-text RET C-x C-f FILENAME RET
> 
> If you remember which encoding Emacs decided to use, try that instead
> of raw-text.

hm, I tried from a fresh emacs session and couldn't reproduce, but now I tried on my few-hours-old session and it crashed.

Breakpoint 1, terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:351
351       signal (sig, SIG_DFL);
(gdb) bt
#0  terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:351
#1  0x0827d8c5 in die (msg=0x83e4420 "c->buffer_beg <= start && end <= c->buffer_end", 
    file=0x83e42b0 "region-cache.c", line=364) at alloc.c:6833
#2  0x08325b0d in set_cache_region (c=0xc44c638, start=8828, end=8835, value=1) at region-cache.c:364
#3  0x08326205 in know_region_cache (buf=0xb6758c0, c=0xc44c638, start=8828, end=8835) at region-cache.c:671
#4  0x0825a4bb in find_newline (start=8828, start_byte=8828, end=8836, end_byte=8836, count=1, shortage=0xbffeadbc, 
    bytepos=0xbffeadc0, allow_quit=true) at search.c:812
#5  0x0824d8a0 in Fforward_line (n=1) at cmds.c:138
#6  0x0828f9a9 in Fline_beginning_position (n=2) at editfns.c:772

(gdb) frame 2
#2  0x08325b0d in set_cache_region (c=0xc44c638, start=8828, end=8835, value=1) at region-cache.c:364
364       eassert (c->buffer_beg <= start && end <= c->buffer_end);
(gdb) p c->buffer_beg
$1 = 1
(gdb) p c->buffer_end
$2 = 27

Completely similar.

I'll try to come up with a recipe but unless it's straightforward I probably will have to delay this by a few days.

Nicolas.