GNU bug report logs -
#17340
24.4.50; emacs_backtrace.txt
Previous Next
Reported by: Drew Adams <drew.adams <at> oracle.com>
Date: Fri, 25 Apr 2014 02:51:02 UTC
Severity: normal
Tags: moreinfo
Merged with 17347,
17411,
17436
Found in version 24.4.50
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 17340 in the body.
You can then email your comments to 17340 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Fri, 25 Apr 2014 02:51:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Drew Adams <drew.adams <at> oracle.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Fri, 25 Apr 2014 02:51:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Backtrace:
01200a23
01200a94
010f448e
01166e6e
010f0190
010f0c00
010b6d9e
0113b694
0113ba47
0113b6e3
0113d2ad
01181f93
0113d7b5
010f60e7
010f4446
01166e6e
011dc92d
011dccd6
011dce22
011dce08
011dce1a
011dce08
011dce08
011dce08
011dce1a
011dce1a
011dce08
011dce1a
011dce08
011dce3f
011669e2
01166a33
01164a68
010f258f
011837c1
011b0eca
011afb30
01183450
01185088
011c5be0
01185815
0118526f
01184b1e
010f88cd
01181f93
010f7f1e
01181540
010f7ed6
010f766c
010f7828
010f59ba
010010f9
76d33386
77399f6e
77399f41
In GNU Emacs 24.4.50.1 (i686-pc-mingw32)
of 2014-04-21 on ODIEONE
Bzr revision: 117005 dancol <at> dancol.org-20140421180019-po4wdeg7gqvvlh5d
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
`configure --prefix=/c/Devel/emacs/snapshot/trunk
--enable-checking=yes,glyphs 'CFLAGS=-O0 -g3'
LDFLAGS=-Lc:/Devel/emacs/lib 'CPPFLAGS=-DGC_MCHECK=1
-Ic:/Devel/emacs/include''
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Fri, 25 Apr 2014 08:10:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 17340 <at> debbugs.gnu.org (full text, mbox):
??
??:0
w32_backtrace at w32fns.c:8476
emacs_abort at w32fns.c:8508
terminate_due_to_signal at emacs.c:382
die at alloc.c:6955
XVECTOR at lisp.h:821
AREF at lisp.h:1308
coding_inherit_eol_type at coding.c:6031
Fchoose_write_coding_system at fileio.c:4632
write_region at fileio.c:4802
Fwrite_region at fileio.c:4676
auto_save_1 at fileio.c:5456
internal_condition_case at eval.c:1354
Fdo_auto_save at fileio.c:5666
shut_down_emacs at emacs.c:2033
terminate_due_to_signal at emacs.c:366
die at alloc.c:6955
rotate_left at intervals.c:393
balance_an_interval at intervals.c:455
balance_intervals_internal at intervals.c:505
balance_intervals_internal at intervals.c:502
balance_intervals_internal at intervals.c:504
balance_intervals_internal at intervals.c:502
balance_intervals_internal at intervals.c:502
balance_intervals_internal at intervals.c:502
balance_intervals_internal at intervals.c:504
balance_intervals_internal at intervals.c:504
balance_intervals_internal at intervals.c:502
balance_intervals_internal at intervals.c:504
balance_intervals_internal at intervals.c:502
balance_intervals at intervals.c:513
sweep_buffers at alloc.c:6751
gc_sweep at alloc.c:6772
Fgarbage_collect at alloc.c:5680
maybe_gc at lisp.h:4514
eval_sub at eval.c:2084
readevalloop at lread.c:1934
Fload at lread.c:1363
Fautoload_do_load at eval.c:1970
Ffuncall at eval.c:2822
exec_byte_code at bytecode.c:916
funcall_lambda at eval.c:2983
Ffuncall at eval.c:2864
call1 at eval.c:2614
command_loop_1 at keyboard.c:1556
internal_condition_case at eval.c:1354
command_loop_2 at keyboard.c:1174
internal_catch at eval.c:1118
command_loop at keyboard.c:1153
recursive_edit_1 at keyboard.c:777
Frecursive_edit at keyboard.c:845
main at emacs.c:1654
?? at crt1.c:0
??
??:0
??
??:0
??
??:0
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Fri, 25 Apr 2014 08:58:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 17340 <at> debbugs.gnu.org (full text, mbox):
> From: Juanma Barranquero <lekktu <at> gmail.com>
> Date: Fri, 25 Apr 2014 10:08:18 +0200
> Cc: 17340 <at> debbugs.gnu.org
>
> w32_backtrace at w32fns.c:8476
> emacs_abort at w32fns.c:8508
> terminate_due_to_signal at emacs.c:382
> die at alloc.c:6955
> XVECTOR at lisp.h:821
> AREF at lisp.h:1308
> coding_inherit_eol_type at coding.c:6031
> Fchoose_write_coding_system at fileio.c:4632
> write_region at fileio.c:4802
> Fwrite_region at fileio.c:4676
> auto_save_1 at fileio.c:5456
> internal_condition_case at eval.c:1354
> Fdo_auto_save at fileio.c:5666
> shut_down_emacs at emacs.c:2033
> terminate_due_to_signal at emacs.c:366
> die at alloc.c:6955
> rotate_left at intervals.c:393 <<<<<<<<<<<<<<<<<<<<<<<
> balance_an_interval at intervals.c:455
This one's definitely related to Stefan's latest changes.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Tue, 29 Apr 2014 03:58:03 GMT)
Full text and
rfc822 format available.
Message #14 received at 17340 <at> debbugs.gnu.org (full text, mbox):
>>>>> "Eli" == Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: Juanma Barranquero <lekktu <at> gmail.com>
>> Date: Fri, 25 Apr 2014 10:08:18 +0200
>> Cc: 17340 <at> debbugs.gnu.org
>>
>> w32_backtrace at w32fns.c:8476
>> emacs_abort at w32fns.c:8508
>> terminate_due_to_signal at emacs.c:382
>> die at alloc.c:6955
>> XVECTOR at lisp.h:821
>> AREF at lisp.h:1308
>> coding_inherit_eol_type at coding.c:6031
>> Fchoose_write_coding_system at fileio.c:4632
>> write_region at fileio.c:4802
>> Fwrite_region at fileio.c:4676
>> auto_save_1 at fileio.c:5456
>> internal_condition_case at eval.c:1354
>> Fdo_auto_save at fileio.c:5666
>> shut_down_emacs at emacs.c:2033
>> terminate_due_to_signal at emacs.c:366
>> die at alloc.c:6955
>> rotate_left at intervals.c:393 <<<<<<<<<<<<<<<<<<<<<<<
>> balance_an_interval at intervals.c:455
> This one's definitely related to Stefan's latest changes.
Could you run with the patch below (and enable_checking, obviously), to
try and catch the problem sooner?
Stefan
=== modified file 'src/intervals.c'
--- src/intervals.c 2014-04-19 18:13:26 +0000
+++ src/intervals.c 2014-04-25 16:38:44 +0000
@@ -110,13 +110,14 @@
set_string_intervals (parent, new);
new->position = 0;
}
+ eassert (LENGTH (new) > 0);
set_interval_object (new, parent);
return new;
}
-/* Make the interval TARGET have exactly the properties of SOURCE */
+/* Make the interval TARGET have exactly the properties of SOURCE. */
void
copy_properties (register INTERVAL source, register INTERVAL target)
@@ -176,10 +177,10 @@
Lisp_Object i1_cdr, i1_val;
if (DEFAULT_INTERVAL_P (i0) && DEFAULT_INTERVAL_P (i1))
- return 1;
+ return true;
if (DEFAULT_INTERVAL_P (i0) || DEFAULT_INTERVAL_P (i1))
- return 0;
+ return false;
i0_cdr = i0->plist;
i1_cdr = i1->plist;
@@ -188,31 +189,31 @@
i0_sym = XCAR (i0_cdr);
i0_cdr = XCDR (i0_cdr);
if (!CONSP (i0_cdr))
- return 0;
+ return false;
i1_val = i1->plist;
while (CONSP (i1_val) && !EQ (XCAR (i1_val), i0_sym))
{
i1_val = XCDR (i1_val);
if (!CONSP (i1_val))
- return 0;
+ return false;
i1_val = XCDR (i1_val);
}
/* i0 has something i1 doesn't. */
if (EQ (i1_val, Qnil))
- return 0;
+ return false;
/* i0 and i1 both have sym, but it has different values in each. */
if (!CONSP (i1_val)
|| (i1_val = XCDR (i1_val), !CONSP (i1_val))
|| !EQ (XCAR (i1_val), XCAR (i0_cdr)))
- return 0;
+ return false;
i0_cdr = XCDR (i0_cdr);
i1_cdr = XCDR (i1_cdr);
if (!CONSP (i1_cdr))
- return 0;
+ return false;
i1_cdr = XCDR (i1_cdr);
}
@@ -339,10 +340,8 @@
ptrdiff_t old_total = A->total_length;
eassert (old_total > 0);
- eassert (old_total
- > TOTAL_LENGTH (B) + TOTAL_LENGTH (A->right));
- eassert (TOTAL_LENGTH (B)
- > TOTAL_LENGTH (B->left) + TOTAL_LENGTH (c));
+ eassert (LENGTH (A) > 0);
+ eassert (LENGTH (B) > 0);
/* Deal with any Parent of A; make it point to B. */
if (! ROOT_INTERVAL_P (A))
@@ -366,9 +365,11 @@
/* A's total length is decreased by the length of B and its left child. */
A->total_length -= B->total_length - TOTAL_LENGTH (c);
eassert (TOTAL_LENGTH (A) > 0);
+ eassert (LENGTH (A) > 0);
/* B must have the same total length of A. */
B->total_length = old_total;
+ eassert (LENGTH (B) > 0);
return B;
}
@@ -390,10 +391,8 @@
ptrdiff_t old_total = A->total_length;
eassert (old_total > 0);
- eassert (old_total
- > TOTAL_LENGTH (B) + TOTAL_LENGTH (A->left));
- eassert (TOTAL_LENGTH (B)
- > TOTAL_LENGTH (B->right) + TOTAL_LENGTH (c));
+ eassert (LENGTH (A) > 0);
+ eassert (LENGTH (B) > 0);
/* Deal with any parent of A; make it point to B. */
if (! ROOT_INTERVAL_P (A))
@@ -417,9 +416,11 @@
/* A's total length is decreased by the length of B and its right child. */
A->total_length -= B->total_length - TOTAL_LENGTH (c);
eassert (TOTAL_LENGTH (A) > 0);
+ eassert (LENGTH (A) > 0);
/* B must have the same total length of A. */
B->total_length = old_total;
+ eassert (LENGTH (B) > 0);
return B;
}
@@ -432,6 +433,9 @@
{
register ptrdiff_t old_diff, new_diff;
+ eassert (LENGTH (i) > 0);
+ eassert (TOTAL_LENGTH (i) >= LENGTH (i));
+
while (1)
{
old_diff = LEFT_TOTAL_LENGTH (i) - RIGHT_TOTAL_LENGTH (i);
@@ -468,16 +472,16 @@
balance_possible_root_interval (INTERVAL interval)
{
Lisp_Object parent;
- bool have_parent = 0;
-
- if (!INTERVAL_HAS_OBJECT (interval) && !INTERVAL_HAS_PARENT (interval))
- return interval;
+ bool have_parent = false;
if (INTERVAL_HAS_OBJECT (interval))
{
- have_parent = 1;
+ have_parent = true;
GET_INTERVAL_OBJECT (parent, interval);
}
+ else if (!INTERVAL_HAS_PARENT (interval))
+ return interval;
+
interval = balance_an_interval (interval);
if (have_parent)
@@ -553,7 +557,7 @@
{
set_interval_right (interval, new);
new->total_length = new_length;
- eassert (TOTAL_LENGTH (new) >= 0);
+ eassert (LENGTH (new) > 0);
}
else
{
@@ -562,7 +566,6 @@
set_interval_parent (interval->right, new);
set_interval_right (interval, new);
new->total_length = new_length + new->right->total_length;
- eassert (TOTAL_LENGTH (new) >= 0);
balance_an_interval (new);
}
@@ -598,7 +601,7 @@
{
set_interval_left (interval, new);
new->total_length = new_length;
- eassert (TOTAL_LENGTH (new) >= 0);
+ eassert (LENGTH (new) > 0);
}
else
{
@@ -607,7 +610,6 @@
set_interval_parent (new->left, new);
set_interval_left (interval, new);
new->total_length = new_length + new->left->total_length;
- eassert (TOTAL_LENGTH (new) >= 0);
balance_an_interval (new);
}
@@ -796,7 +798,7 @@
{
i->left->position = i->position - TOTAL_LENGTH (i->left)
+ LEFT_TOTAL_LENGTH (i->left);
- i = i->left; /* Move to the left child */
+ i = i->left; /* Move to the left child. */
}
else if (NULL_PARENT (i))
error ("Point before start of properties");
@@ -811,7 +813,7 @@
{
i->right->position = INTERVAL_LAST_POS (i)
+ LEFT_TOTAL_LENGTH (i->right);
- i = i->right; /* Move to the right child */
+ i = i->right; /* Move to the right child. */
}
else if (NULL_PARENT (i))
error ("Point %"pD"d after end of properties", pos);
@@ -958,7 +960,6 @@
for (temp = prev ? prev : i; temp; temp = INTERVAL_PARENT_OR_NULL (temp))
{
temp->total_length += length;
- eassert (TOTAL_LENGTH (temp) >= 0);
temp = balance_possible_root_interval (temp);
}
@@ -1014,7 +1015,6 @@
for (temp = i; temp; temp = INTERVAL_PARENT_OR_NULL (temp))
{
temp->total_length += length;
- eassert (TOTAL_LENGTH (temp) >= 0);
temp = balance_possible_root_interval (temp);
}
}
@@ -1216,9 +1216,10 @@
this = this->left;
this->total_length += migrate_amt;
}
- eassert (TOTAL_LENGTH (this) >= 0);
set_interval_left (this, migrate);
set_interval_parent (migrate, this);
+ eassert (LENGTH (this) > 0);
+ eassert (LENGTH (i->right) > 0);
return i->right;
}
@@ -1298,7 +1299,7 @@
relative_position,
amount);
tree->total_length -= subtract;
- eassert (TOTAL_LENGTH (tree) >= 0);
+ eassert (LENGTH (tree) > 0);
return subtract;
}
/* Right branch. */
@@ -1313,7 +1314,7 @@
relative_position,
amount);
tree->total_length -= subtract;
- eassert (TOTAL_LENGTH (tree) >= 0);
+ eassert (LENGTH (tree) > 0);
return subtract;
}
/* Here -- this node. */
@@ -1328,7 +1329,7 @@
amount = my_amount;
tree->total_length -= amount;
- eassert (TOTAL_LENGTH (tree) >= 0);
+ eassert (LENGTH (tree) >= 0);
if (LENGTH (tree) == 0)
delete_interval (tree);
@@ -1370,7 +1371,7 @@
if (ONLY_INTERVAL_P (tree))
{
tree->total_length -= length;
- eassert (TOTAL_LENGTH (tree) >= 0);
+ eassert (LENGTH (tree) > 0);
return;
}
@@ -1430,12 +1431,12 @@
while (! NULL_LEFT_CHILD (successor))
{
successor->total_length += absorb;
- eassert (TOTAL_LENGTH (successor) >= 0);
+ eassert (LENGTH (successor) > 0);
successor = successor->left;
}
successor->total_length += absorb;
- eassert (TOTAL_LENGTH (successor) >= 0);
+ eassert (LENGTH (successor) > 0);
delete_interval (i);
return successor;
}
@@ -1457,7 +1458,7 @@
successor = INTERVAL_PARENT (successor);
successor->total_length -= absorb;
- eassert (TOTAL_LENGTH (successor) >= 0);
+ eassert (LENGTH (successor) > 0);
}
/* This must be the rightmost or last interval and cannot
@@ -1486,12 +1487,12 @@
while (! NULL_RIGHT_CHILD (predecessor))
{
predecessor->total_length += absorb;
- eassert (TOTAL_LENGTH (predecessor) >= 0);
+ eassert (LENGTH (predecessor) > 0);
predecessor = predecessor->right;
}
predecessor->total_length += absorb;
- eassert (TOTAL_LENGTH (predecessor) >= 0);
+ eassert (LENGTH (predecessor) > 0);
delete_interval (i);
return predecessor;
}
@@ -1513,7 +1514,7 @@
predecessor = INTERVAL_PARENT (predecessor);
predecessor->total_length -= absorb;
- eassert (TOTAL_LENGTH (predecessor) >= 0);
+ eassert (LENGTH (predecessor) > 0);
}
/* This must be the leftmost or first interval and cannot
@@ -1528,6 +1529,8 @@
{
register INTERVAL target = make_interval ();
+ eassert (LENGTH (source) > 0);
+
target->total_length = source->total_length;
target->position = source->position;
@@ -1538,6 +1541,7 @@
if (! NULL_RIGHT_CHILD (source))
set_interval_right (target, reproduce_tree (source->right, target));
+ eassert (LENGTH (target) > 0);
return target;
}
@@ -1766,7 +1770,7 @@
if (! NILP (fallback))
return fallback;
- /* Check for alternative properties */
+ /* Check for alternative properties. */
tail = Fassq (prop, Vchar_property_alias_alist);
if (! NILP (tail))
{
@@ -2434,7 +2438,7 @@
end, end_byte);
}
- /* Rounding to char boundaries can theoretically ake this interval
+ /* Rounding to char boundaries can theoretically make this interval
spurious. If so, delete one child, and copy its property list
to this interval. */
if (LEFT_TOTAL_LENGTH (i) + RIGHT_TOTAL_LENGTH (i) >= TOTAL_LENGTH (i))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Wed, 30 Apr 2014 00:08:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 17340 <at> debbugs.gnu.org (full text, mbox):
On Fri, Apr 25, 2014 at 6:40 PM, Stefan Monnier
<monnier <at> iro.umontreal.ca> wrote:
> Could you run with the patch below (and enable_checking, obviously), to
> try and catch the problem sooner?
Drew, do you want a special build from trunk with this patch?
J
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Wed, 30 Apr 2014 00:19:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 17340 <at> debbugs.gnu.org (full text, mbox):
> > Could you run with the patch below (and enable_checking, obviously), to
> > try and catch the problem sooner?
>
> Drew, do you want a special build from trunk with this patch?
Uh, OK I guess. I'll be glad to try it for a while. But I have no
idea how to repro the crash, so if it does not crash in the same way
we won't know much, I'm guessing.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Wed, 30 Apr 2014 02:20:01 GMT)
Full text and
rfc822 format available.
Message #23 received at 17340 <at> debbugs.gnu.org (full text, mbox):
> Uh, OK I guess. I'll be glad to try it for a while.
It's up as emacs-trunk-20140430-r117031-bin-i386.zip
> But I have no
> idea how to repro the crash, so if it does not crash in the same way
> we won't know much, I'm guessing.
Worth trying anyway.
J
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Sat, 26 Dec 2015 14:18:01 GMT)
Full text and
rfc822 format available.
Message #30 received at 17340 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
>> Cc: lekktu <at> gmail.com, 17411 <at> debbugs.gnu.org
>> Date: Tue, 13 May 2014 17:19:50 -0400
>>
>> I'd "fprintf (stderr, ...)", but that wouldn't work under w32 would
>> it?
>
> Not if Emacs was invoked by clicking the desktop icon, which is the
> usual way, no.
>
> Perhaps we should add a feature to write arbitrary text into the
> emacs_backtrace.txt file, when Emacs crashes.
It's unclear what the conclusion was in this report -- whether there was
something more to investigate or not...
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#17340
; Package
emacs
.
(Sat, 26 Dec 2015 14:24:01 GMT)
Full text and
rfc822 format available.
Message #33 received at 17340 <at> debbugs.gnu.org (full text, mbox):
> From: Lars Ingebrigtsen <larsi <at> gnus.org>
> Cc: Stefan Monnier <monnier <at> IRO.UMontreal.CA>, 17340 <at> debbugs.gnu.org, lekktu <at> gmail.com, 17411 <at> debbugs.gnu.org
> Date: Sat, 26 Dec 2015 15:16:56 +0100
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> >> From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
> >> Cc: lekktu <at> gmail.com, 17411 <at> debbugs.gnu.org
> >> Date: Tue, 13 May 2014 17:19:50 -0400
> >>
> >> I'd "fprintf (stderr, ...)", but that wouldn't work under w32 would
> >> it?
> >
> > Not if Emacs was invoked by clicking the desktop icon, which is the
> > usual way, no.
> >
> > Perhaps we should add a feature to write arbitrary text into the
> > emacs_backtrace.txt file, when Emacs crashes.
>
> It's unclear what the conclusion was in this report -- whether there was
> something more to investigate or not...
I think it should be closed. These problems didn't happen in a long
while.
bug closed, send any further explanations to
17411 <at> debbugs.gnu.org and Drew Adams <drew.adams <at> oracle.com>
Request was from
Lars Ingebrigtsen <larsi <at> gnus.org>
to
control <at> debbugs.gnu.org
.
(Sat, 26 Dec 2015 14:41:01 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 24 Jan 2016 12:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 9 years and 144 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.