GNU bug report logs - #18180
24.3.92; Segfault in mark_object

Previous Next

Package: emacs;

Reported by: Mat Smiglarski <penthief <at> SDF.ORG>

Date: Sun, 3 Aug 2014 15:05:02 UTC

Severity: normal

Found in version 24.3.92

Fixed in version 24.3.93

Done: Glenn Morris <rgm <at> gnu.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 18180 in the body.
You can then email your comments to 18180 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#18180; Package emacs. (Sun, 03 Aug 2014 15:05:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mat Smiglarski <penthief <at> SDF.ORG>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 03 Aug 2014 15:05:03 GMT) Full text and rfc822 format available.

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

From: Mat Smiglarski <penthief <at> SDF.ORG>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.92; Segfault in mark_object
Date: Sun, 03 Aug 2014 16:03:09 +0100
[Message part 1 (text/plain, inline)]
This is a segfault during GC, in mark_object.

1. Start emacs

$ emacs -Q

2. Call some code which kills and creates a frame between 2 and 25 
times.

This segfault is reasonably straightforward to reproduce, I can cause 
the crash within 2 minutes of starting emacs.

On the emacs-24 branch, this seems to occur in mark_object. The issue is 
also found on the trunk branch so I have supplied details of this also, 
however the backtrace is slightly different.

The issue may relate to bugs #15583 and #17168.

Finally, I have a core dumps which I don't mind sharing for both of 
these crashes which are ~350MB each, please ask.

Regards,
Mat

System Info:

In GNU Emacs 24.3.92.3 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2014-08-03 on zz
Windowing system distributor `The X.Org Foundation', version 
11.0.11501000
System Description:	Ubuntu 14.04 LTS

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Details of the two segfaults:

Crash on emacs-24 branch
(gdb) p Fsymbol_value(intern("emacs-bzr-version"))
$3 = 12112050
Attachment: backtrace.6212 (Output from bt full)

Crash on trunk:
(gdb) p Fsymbol_value(intern("emacs-bzr-version"))
$1 = 12341426
Attachment: backtrace.6069

2 shorter backtraces follow:

6212 - (gdb) bt full 6
#0  mark_object (arg=<optimized out>) at alloc.c:6248
        obj = 139640014399843
        cdr_count = 0
#1  0x000000000053b8a0 in Fgarbage_collect () at alloc.c:5647
        nextb = 0x19a2c10
        stack_top_variable = 0 '\000'
        i = <optimized out>
        message_p = false
        retval = <optimized out>
        tot_before = 0
#2  0x00000000005534d2 in maybe_gc () at lisp.h:4564
No locals.
#3  Ffuncall (nargs=5, args=0x7fffffffc738) at eval.c:2766
        fun = <optimized out>
        original_fun = <optimized out>
        numargs = 4
        val = <optimized out>
        internal_args = <optimized out>
        i = <optimized out>
#4  0x00000000005878e5 in exec_byte_code (bytestr=3, vector=2866666, 
maxdepth=182,
    args_template=12112050, nargs=140737488340816, args=0x5) at 
bytecode.c:916
        targets = {0x58797c <exec_byte_code+988>, 0x58813f 
<exec_byte_code+2975>,
          0x588144 <exec_byte_code+2980>, 0x588149 
<exec_byte_code+2985>,
          0x587772 <exec_byte_code+466>, 0x587778 <exec_byte_code+472>,
          0x588919 <exec_byte_code+4985>, 0x588956 
<exec_byte_code+5046>,
          0x5889d8 <exec_byte_code+5176>, 0x5889dd 
<exec_byte_code+5181>,
          0x5889a7 <exec_byte_code+5127>, 0x5889ac 
<exec_byte_code+5132>,
          0x5877a9 <exec_byte_code+521>, 0x5877b0 <exec_byte_code+528>,
          0x587e17 <exec_byte_code+2167>, 0x5889b1 
<exec_byte_code+5137>,
          0x587f83 <exec_byte_code+2531>, 0x587f88 
<exec_byte_code+2536>,
          0x588005 <exec_byte_code+2661>, 0x58800a 
<exec_byte_code+2666>,
          0x587815 <exec_byte_code+629>, 0x587818 <exec_byte_code+632>,
          0x587fb4 <exec_byte_code+2580>, 0x587f8d 
<exec_byte_code+2541>,
          0x588036 <exec_byte_code+2710>, 0x58803b 
<exec_byte_code+2715>,
          0x588040 <exec_byte_code+2720>, 0x588045 
<exec_byte_code+2725>,
          0x587881 <exec_byte_code+737>, 0x587888 <exec_byte_code+744>,
          0x587ff0 <exec_byte_code+2640>, 0x58800f 
<exec_byte_code+2671>,
          0x588091 <exec_byte_code+2801>, 0x588096 
<exec_byte_code+2806>,
          0x58809b <exec_byte_code+2811>, 0x5880a5 
<exec_byte_code+2821>,
          0x5878c3 <exec_byte_code+803>, 0x5878c8 <exec_byte_code+808>,
          0x588055 <exec_byte_code+2741>, 0x58806a 
<exec_byte_code+2762>,
          0x5879f2 <exec_byte_code+1106>, 0x5879f7 
<exec_byte_code+1111>,
          0x5879fc <exec_byte_code+1116>, 0x5880ca 
<exec_byte_code+2858>,
          0x587905 <exec_byte_code+869>, 0x587908 <exec_byte_code+872>,
          0x5880b5 <exec_byte_code+2837>, 0x5879cb 
<exec_byte_code+1067>,
          0x58881e <exec_byte_code+4734>, 0x588813 
<exec_byte_code+4723>,
          0x58871f <exec_byte_code+4479>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x588b3e <exec_byte_code+5534>, 0x588bcc 
<exec_byte_code+5676>,
          0x588c03 <exec_byte_code+5731>, 0x588c3a 
<exec_byte_code+5786>,
          0x588c71 <exec_byte_code+5841>, 0x587eda 
<exec_byte_code+2362>,
          0x587f14 <exec_byte_code+2420>, 0x588cb2 
<exec_byte_code+5906>,
          0x587e9f <exec_byte_code+2303>, 0x587f48 
<exec_byte_code+2472>,
          0x588ce4 <exec_byte_code+5956>, 0x588d18 
<exec_byte_code+6008>,
          0x588d40 <exec_byte_code+6048>, 0x588d74 
<exec_byte_code+6100>,
          0x588da9 <exec_byte_code+6153>, 0x588e20 
<exec_byte_code+6272>,
          0x588e48 <exec_byte_code+6312>, 0x588e7c 
<exec_byte_code+6364>,
          0x588eb4 <exec_byte_code+6420>, 0x588edc 
<exec_byte_code+6460>,
          0x588f04 <exec_byte_code+6500>, 0x588f38 
<exec_byte_code+6552>,
          0x588f6c <exec_byte_code+6604>, 0x588fa0 
<exec_byte_code+6656>,
          0x588fd8 <exec_byte_code+6712>, 0x58900d 
<exec_byte_code+6765>,
          0x589042 <exec_byte_code+6818>, 0x5890b9 
<exec_byte_code+6937>,
          0x5890f2 <exec_byte_code+6994>, 0x58912b 
<exec_byte_code+7051>,
          0x589244 <exec_byte_code+7332>, 0x5891d2 
<exec_byte_code+7218>,
          0x58920b <exec_byte_code+7275>, 0x58927d 
<exec_byte_code+7389>,
          0x5892b6 <exec_byte_code+7446>, 0x5892eb 
<exec_byte_code+7499>,
          0x58931d <exec_byte_code+7549>, 0x589352 
<exec_byte_code+7602>,
          0x589387 <exec_byte_code+7655>, 0x5893bc 
<exec_byte_code+7708>,
          0x58945a <exec_byte_code+7866>, 0x58794d <exec_byte_code+941>,
          0x589490 <exec_byte_code+7920>, 0x5894b8 
<exec_byte_code+7960>,
          0x589527 <exec_byte_code+8071>, 0x58955d 
<exec_byte_code+8125>,
          0x589593 <exec_byte_code+8179>, 0x5895bb 
<exec_byte_code+8219>,
          0x5895e5 <exec_byte_code+8261>, 0x58960f 
<exec_byte_code+8303>,
          0x58963c <exec_byte_code+8348>, 0x58797c <exec_byte_code+988>,
          0x58966b <exec_byte_code+8395>, 0x589698 
<exec_byte_code+8440>,
          0x5896c5 <exec_byte_code+8485>, 0x5896f2 
<exec_byte_code+8530>,
          0x58971f <exec_byte_code+8575>, 0x58974c 
<exec_byte_code+8620>,
          0x58794d <exec_byte_code+941>, 0x58797c <exec_byte_code+988>,
          0x589774 <exec_byte_code+8660>, 0x5897b3 
<exec_byte_code+8723>,
          0x5897db <exec_byte_code+8763>, 0x589803 
<exec_byte_code+8803>,
          0x589837 <exec_byte_code+8855>, 0x58986b 
<exec_byte_code+8907>,
          0x5882f2 <exec_byte_code+3410>, 0x5883c8 
<exec_byte_code+3624>,
          0x589a74 <exec_byte_code+9428>, 0x589aa8 
<exec_byte_code+9480>,
          0x5883fc <exec_byte_code+3676>, 0x588429 
<exec_byte_code+3721>,
          0x58797c <exec_byte_code+988>, 0x58866b <exec_byte_code+4299>,
          0x587a05 <exec_byte_code+1125>, 0x587e2c 
<exec_byte_code+2188>,
          0x587c71 <exec_byte_code+1745>, 0x587b13 
<exec_byte_code+1395>,
          0x587d73 <exec_byte_code+2003>, 0x5885f7 
<exec_byte_code+4183>,
          0x58864a <exec_byte_code+4266>, 0x587fc9 
<exec_byte_code+2601>,
          0x58853c <exec_byte_code+3996>, 0x5884de 
<exec_byte_code+3902>,
          0x5886b7 <exec_byte_code+4375>, 0x5886e6 
<exec_byte_code+4422>,
          0x58884d <exec_byte_code+4781>, 0x588899 
<exec_byte_code+4857>,
          0x5888d1 <exec_byte_code+4913>, 0x588ae8 
<exec_byte_code+5448>,
          0x5884b1 <exec_byte_code+3857>, 0x588451 
<exec_byte_code+3761>,
          0x588489 <exec_byte_code+3817>, 0x589893 
<exec_byte_code+8947>,
          0x5898bb <exec_byte_code+8987>, 0x5898e3 
<exec_byte_code+9027>,
          0x58990b <exec_byte_code+9067>, 0x58993f 
<exec_byte_code+9119>,
          0x589973 <exec_byte_code+9171>, 0x5899a7 
<exec_byte_code+9223>,
          0x5899db <exec_byte_code+9275>, 0x588155 
<exec_byte_code+2997>,
          0x588189 <exec_byte_code+3049>, 0x5881bd 
<exec_byte_code+3101>,
          0x5881e5 <exec_byte_code+3141>, 0x588219 
<exec_byte_code+3193>,
          0x58824d <exec_byte_code+3245>, 0x588285 
<exec_byte_code+3301>,
          0x5882bd <exec_byte_code+3357>, 0x5893f1 
<exec_byte_code+7761>,
          0x589426 <exec_byte_code+7814>, 0x5880cf 
<exec_byte_code+2863>,
          0x58810d <exec_byte_code+2925>, 0x58797c <exec_byte_code+988>,
          0x587a99 <exec_byte_code+1273>, 0x587d18 
<exec_byte_code+1912>,
          0x587b83 <exec_byte_code+1507>, 0x587c0e 
<exec_byte_code+1646>,
          0x58856b <exec_byte_code+4043>, 0x588dde 
<exec_byte_code+6206>,
          0x589077 <exec_byte_code+6871>, 0x5894e5 
<exec_byte_code+8005>,
          0x5889e2 <exec_byte_code+5186>, 0x588a1f 
<exec_byte_code+5247>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x588a70 <exec_byte_code+5328>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x588ab8 <exec_byte_code+5400> <repeats 64 times>}
        stack = {
          pc = 0xac48b8 <pure+2671224> "\207",
          byte_string = 9140745,
          byte_string_start = 0xac486b <pure+2671147> 
"\303\304\b\t\b\305=\203E",
          next = 0x7fffffffc9e0
        }
        result = 3
        type = (unknown: 4294952784)
#5  0x000000000055318f in funcall_lambda (fun=9140701, 
nargs=nargs <at> entry=2,
    arg_vector=arg_vector <at> entry=0x7fffffffc990) at eval.c:3049
        val = <optimized out>
        syms_left = 12112050
        lexenv = 12112050
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
(More stack frames follow...)

Lisp Backtrace:
"Automatic GC" (0xb73088)
"apply" (0xffffc740)
"face-spec-reset-face" (0xffffc990)
"face-spec-recalc" (0xffffcb40)
"byte-code" (0xffffcc30)
"face-set-after-frame-default" (0xffffcf20)
"x-create-frame-with-faces" (0xffffd0d0)
"make-frame" (0xffffd200)
"let*" (0xffffd3f8)
"setq" (0xffffd4e8)
"stupider-speed-read" (0xffffd6c8)
"call-interactively" (0xffffd8d0)
"command-execute" (0xffffda40)
"execute-extended-command" (0xffffdba8)
"call-interactively" (0xffffde20)
"command-execute" (0xffffdf68)

6069 - (gdb) bt full 6
**** bt full 6
#0  XCAR (c=3255377271362580334) at lisp.h:1052
No locals.
#1  compact_undo_list (list=3255377271362580334) at alloc.c:5506
        tail = 3255377271362580334
        prev = 0x7fffffffb678
#2  garbage_collect_1 (end=0x7fffffffb668) at alloc.c:5675
        nextb = 0x194b800
        i = <optimized out>
        retval = <optimized out>
        stack_top_variable = 0 '\000'
        message_p = false
        tot_before = 0
#3  Fgarbage_collect () at alloc.c:5896
        end = 0x7fffffffb668
#4  0x0000000000558ee2 in maybe_gc () at lisp.h:4547
No locals.
#5  Ffuncall (nargs=2, args=0x7fffffffb7f8) at eval.c:2759
        fun = <optimized out>
        original_fun = <optimized out>
        numargs = 1
        val = <optimized out>
        internal_args = <optimized out>
        i = <optimized out>
(More stack frames follow...)

Lisp Backtrace:
"Automatic GC" (0xbaa970)
"purecopy" (0xffffb800)
"set-face-attribute" (0xffffb9b8)
"apply" (0xffffbbc0)
"face-spec-reset-face" (0xffffbe10)
"face-spec-recalc" (0xffffbfc0)
"byte-code" (0xffffc0b0)
"face-set-after-frame-default" (0xffffc3a0)
"x-create-frame-with-faces" (0xffffc550)
"make-frame" (0xffffc680)
"let*" (0xffffc878)
"setq" (0xffffc968)
"stupider-speed-read" (0xffffcbf0)
"funcall-interactively" (0xffffcbe8)
"call-interactively" (0xffffce20)
"command-execute" (0xffffcf90)
"execute-extended-command" (0xffffd190)
"funcall-interactively" (0xffffd188)
"call-interactively" (0xffffd3f0)
"command-execute" (0xffffd538)
"call-last-kbd-macro" (0xffffd780)
"kmacro-call-macro" (0xffffd970)
"kmacro-end-and-call-macro" (0xffffdc00)
"funcall-interactively" (0xffffdbf8)
"call-interactively" (0xffffde00)
"command-execute" (0xffffdf48)
[backtrace.6212 (text/x-asm, attachment)]
[backtrace.6069 (text/x-asm, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18180; Package emacs. (Sun, 03 Aug 2014 21:09:01 GMT) Full text and rfc822 format available.

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

From: Mat Smiglarski <penthief <at> SDF.ORG>
To: 18180 <at> debbugs.gnu.org
Subject: Re: bug#18180: Acknowledgement (24.3.92; Segfault in
 mark_object)
Date: Sun, 03 Aug 2014 22:08:15 +0100
Perhaps this valgrind output is helpful?

The crash is reproducible within a couple of minutes so perhaps someone 
has some advice for running valgrind? (Although --vgdb=yes caused 
valgrind to crash!)

This bug also occurs on 24.3.

Regards,
Mat

▶ valgrind --suppressions=valgrind.supp --track-origins=yes ./temacs -Q
==13689== Memcheck, a memory error detector
==13689== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et 
al.
==13689== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for 
copyright info
==13689== Command: ./temacs -Q
==13689==
Loading loadup.el (source)...
Using load-path (/home/zz/src/emacs/lisp)
Loading emacs-lisp/byte-run...
Loading emacs-lisp/byte-run...done
Loading emacs-lisp/backquote...
Loading emacs-lisp/backquote...done
Loading subr...
Loading subr...done
Loading version...
Loading version...done
Loading widget...
Loading widget...done
Loading custom...
Loading custom...done
Loading emacs-lisp/map-ynp...
Loading emacs-lisp/map-ynp...done
Loading international/mule...
Loading international/mule...done
Loading international/mule-conf...
Loading international/mule-conf...done
Loading env...
Loading env...done
Loading format...
Loading format...done
Loading bindings...
Loading bindings...done
Loading cus-start...
Loading cus-start...done
Loading window...
Loading window...done
Loading files...
Loading files...done
Loading emacs-lisp/macroexp...
Loading emacs-lisp/macroexp...done
Loading cus-face...
Loading cus-face...done
Loading faces...
Loading faces...done
Loading button...
Loading button...done
Loading startup...
Loading startup...done
Loading loaddefs.el (source)...
Loading loaddefs.el (source)...done
Loading emacs-lisp/nadvice...
Loading emacs-lisp/nadvice...done
Loading minibuffer...
Loading minibuffer...done
Loading abbrev...
Loading abbrev...done
Loading simple...
Loading simple...done
Loading help...
Loading help...done
Loading jka-cmpr-hook...
Loading jka-cmpr-hook...done
Loading epa-hook...
Loading epa-hook...done
Loading international/mule-cmds...
Loading international/mule-cmds...done
Loading case-table...
Loading case-table...done
Loading international/charprop.el (source)...
Loading international/charprop.el (source)...done
Loading international/characters...
Loading international/characters...done
Loading composite...
Loading composite...done
Loading language/chinese...
Loading language/chinese...done
Loading language/cyrillic...
Loading language/cyrillic...done
Loading language/indian...
Loading language/indian...done
Loading language/sinhala...
Loading language/sinhala...done
Loading language/english...
Loading language/english...done
Loading language/ethiopic...
Loading language/ethiopic...done
Loading language/european...
Loading language/european...done
Loading language/czech...
Loading language/czech...done
Loading language/slovak...
Loading language/slovak...done
Loading language/romanian...
Loading language/romanian...done
Loading language/greek...
Loading language/greek...done
Loading language/hebrew...
Loading language/hebrew...done
Loading language/japanese...
Loading international/cp51932.el (source)...
Loading international/cp51932.el (source)...done
Loading international/eucjp-ms.el (source)...
Loading international/eucjp-ms.el (source)...done
Loading language/japanese...done
Loading language/korean...
Loading language/korean...done
Loading language/lao...
Loading language/lao...done
Loading language/tai-viet...
Loading language/tai-viet...done
Loading language/thai...
Loading language/thai...done
Loading language/tibetan...
Loading language/tibetan...done
Loading language/vietnamese...
Loading language/vietnamese...done
Loading language/misc-lang...
Loading language/misc-lang...done
Loading language/utf-8-lang...
Loading language/utf-8-lang...done
Loading language/georgian...
Loading language/georgian...done
Loading language/khmer...
Loading language/khmer...done
Loading language/burmese...
Loading language/burmese...done
Loading language/cham...
Loading language/cham...done
Loading indent...
Loading indent...done
Loading frame...
Loading frame...done
Loading term/tty-colors...
Loading term/tty-colors...done
Loading font-core...
Loading font-core...done
Loading facemenu...
Loading facemenu...done
Loading emacs-lisp/syntax...
Loading emacs-lisp/syntax...done
Loading font-lock...
Loading font-lock...done
Loading jit-lock...
Loading jit-lock...done
Loading mouse...
Loading mouse...done
Loading scroll-bar...
Loading scroll-bar...done
Loading select...
Loading select...done
Loading emacs-lisp/timer...
Loading emacs-lisp/timer...done
Loading isearch...
Loading isearch...done
Loading rfn-eshadow...
Loading rfn-eshadow...done
Loading menu-bar...
Loading menu-bar...done
Loading emacs-lisp/lisp...
Loading emacs-lisp/lisp...done
Loading textmodes/page...
Loading textmodes/page...done
Loading register...
Loading register...done
Loading textmodes/paragraphs...
Loading textmodes/paragraphs...done
Loading progmodes/prog-mode...
Loading progmodes/prog-mode...done
Loading emacs-lisp/lisp-mode...
Loading emacs-lisp/lisp-mode...done
Loading textmodes/text-mode...
Loading textmodes/text-mode...done
Loading textmodes/fill...
Loading textmodes/fill...done
Loading newcomment...
Loading newcomment...done
Loading replace...
Loading replace...done
Loading emacs-lisp/tabulated-list...
Loading emacs-lisp/tabulated-list...done
Loading buff-menu...
Loading buff-menu...done
Loading fringe...
Loading fringe...done
Loading emacs-lisp/regexp-opt...
Loading emacs-lisp/regexp-opt...done
Loading image...
Loading image...done
Loading international/fontset...
Loading international/fontset...done
Loading dnd...
Loading dnd...done
Loading tool-bar...
Loading tool-bar...done
Loading dynamic-setting...
Loading dynamic-setting...done
Loading x-dnd...
Loading x-dnd...done
Loading term/common-win...
Loading term/common-win...done
Loading term/x-win...
Loading term/x-win...done
Loading mwheel...
Loading mwheel...done
Loading emacs-lisp/float-sup...
Loading emacs-lisp/float-sup...done
Loading vc/vc-hooks...
Loading vc/vc-hooks...done
Loading vc/ediff-hook...
Loading vc/ediff-hook...done
Loading uniquify...
Loading uniquify...done
Loading electric...
Loading electric...done
Loading tooltip...
Loading tooltip...done
Loading leim/leim-list.el (source)...
Loading leim/leim-list.el (source)...done
Finding pointers to doc strings...
Finding pointers to doc strings...done
Pure-hashed: 23777 strings, 3453 vectors, 37160 conses, 3245 bytecodes, 
82 others
==13689== Conditional jump or move depends on uninitialised value(s)
==13689==    at 0xD69EF74: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==    by 0xD6848AB: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==    by 0xD639840: pixman_image_composite32 (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==    by 0x7028C56: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x7069E23: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x705CCBB: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x705D69A: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x705E596: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x701CB26: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x702CE5E: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x7061503: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x702458B: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==  Uninitialised value was created by a stack allocation
==13689==    at 0xD684640: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==
==13689== Conditional jump or move depends on uninitialised value(s)
==13689==    at 0x83FB337: ??? (in 
/usr/lib/x86_64-linux-gnu/librsvg-2.so.2.40.2)
==13689==    by 0x83FBF07: rsvg_handle_get_pixbuf_sub (in 
/usr/lib/x86_64-linux-gnu/librsvg-2.so.2.40.2)
==13689==    by 0x27120E45: ??? (in 
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so)
==13689==    by 0x6B91211: ??? (in 
/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.3000.7)
==13689==    by 0x6B92B41: gdk_pixbuf_new_from_file (in 
/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.3000.7)
==13689==    by 0x4C6DE3: xg_set_icon (xfns.c:456)
==13689==    by 0x4BB5AE: x_bitmap_icon (xterm.c:7363)
==13689==    by 0x4C2D9F: x_set_icon_type (xfns.c:907)
==13689==    by 0x423A79: x_set_frame_parameters (frame.c:2932)
==13689==    by 0x426293: x_default_parameter (frame.c:4035)
==13689==    by 0x4C7FB7: Fx_create_frame (xfns.c:3206)
==13689==    by 0x5536E3: Ffuncall (eval.c:2815)
==13689==  Uninitialised value was created by a stack allocation
==13689==    at 0xD684640: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==
==13689== Conditional jump or move depends on uninitialised value(s)
==13689==    at 0xD69EC6C: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==    by 0xD6848AB: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==    by 0xD639840: pixman_image_composite32 (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==    by 0x7028C56: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x7069E23: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x705CCBB: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x705D69A: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x705E2B6: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x701CA63: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x702CE22: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x7061411: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==    by 0x70241E1: ??? (in 
/usr/lib/x86_64-linux-gnu/libcairo.so.2.11301.0)
==13689==  Uninitialised value was created by a stack allocation
==13689==    at 0xD684640: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==
==13689== Conditional jump or move depends on uninitialised value(s)
==13689==    at 0x83FB337: ??? (in 
/usr/lib/x86_64-linux-gnu/librsvg-2.so.2.40.2)
==13689==    by 0x83FBF07: rsvg_handle_get_pixbuf_sub (in 
/usr/lib/x86_64-linux-gnu/librsvg-2.so.2.40.2)
==13689==    by 0x27120E45: ??? (in 
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so)
==13689==    by 0x6B951FA: gdk_pixbuf_loader_close (in 
/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.3000.7)
==13689==    by 0x6B91434: ??? (in 
/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.3000.7)
==13689==    by 0x6B9307C: gdk_pixbuf_new_from_stream_at_scale (in 
/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0.3000.7)
==13689==    by 0x5FCF84A: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5FD2FE9: gtk_icon_info_load_icon (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5FD327B: gtk_icon_theme_load_icon_for_scale (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5EEE264: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5EEE6AD: gtk_icon_set_render_icon_surface (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5FCC9FF: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==  Uninitialised value was created by a stack allocation
==13689==    at 0xD684640: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==
==13689== Conditional jump or move depends on uninitialised value(s)
==13689==    at 0x659B161: gdk_pixbuf_get_from_surface (in 
/usr/lib/x86_64-linux-gnu/libgdk-3.so.0.1000.8)
==13689==    by 0x60D59F0: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5EEE2D5: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5EEE6AD: gtk_icon_set_render_icon_surface (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5FCC9FF: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5FCD588: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5FCD725: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5FDF7B1: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x5FDF8F6: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x607ED65: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x607EF72: ??? (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==    by 0x607F2A7: 
gtk_widget_get_preferred_height_and_baseline_for_width (in 
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.1000.8)
==13689==  Uninitialised value was created by a stack allocation
==13689==    at 0xD684640: ??? (in 
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0.30.2)
==13689==



ZZ Initial frame is now visible

==13689== Invalid read of size 8
==13689==    at 0x53B84E: Fgarbage_collect (lisp.h:1054)
==13689==    by 0x5534D1: Ffuncall (lisp.h:4564)
==13689==    by 0x5878E4: exec_byte_code (bytecode.c:916)
==13689==    by 0x55318E: funcall_lambda (eval.c:3049)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x55491B: Fapply (eval.c:2354)
==13689==    by 0x5535D9: Ffuncall (eval.c:2796)
==13689==    by 0x5878E4: exec_byte_code (bytecode.c:916)
==13689==    by 0x55318E: funcall_lambda (eval.c:3049)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x5878E4: exec_byte_code (bytecode.c:916)
==13689==    by 0x55318E: funcall_lambda (eval.c:3049)
==13689==  Address 0x279100002870 is not stack'd, malloc'd or (recently) 
free'd
==13689==
==13689== Syscall param rt_sigaction(signum) contains uninitialised 
byte(s)
==13689==    at 0xA5180FA: __libc_sigaction (sigaction.c:64)
==13689==    by 0xA517F05: signal (signal.c:47)
==13689==    by 0x4E2576: terminate_due_to_signal (emacs.c:351)
==13689==    by 0x4FA79D: handle_fatal_signal (sysdep.c:1630)
==13689==    by 0x4FA9A2: deliver_fatal_thread_signal (sysdep.c:1604)
==13689==    by 0xA2D333F: ??? (in 
/lib/x86_64-linux-gnu/libpthread-2.19.so)
==13689==    by 0x53B84D: Fgarbage_collect (lisp.h:704)
==13689==    by 0x5534D1: Ffuncall (lisp.h:4564)
==13689==    by 0x5878E4: exec_byte_code (bytecode.c:916)
==13689==    by 0x55318E: funcall_lambda (eval.c:3049)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x55491B: Fapply (eval.c:2354)
==13689==  Uninitialised value was created by a heap allocation
==13689==    at 0x4C2AB80: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==13689==    by 0x53845E: lisp_malloc (alloc.c:907)
==13689==    by 0x5393C2: allocate_buffer (alloc.c:3140)
==13689==    by 0x502477: Fmake_indirect_buffer (buffer.c:779)
==13689==    by 0x552BC6: eval_sub (eval.c:2191)
==13689==    by 0x5553EB: Fsetq (eval.c:545)
==13689==    by 0x552CDA: eval_sub (eval.c:2133)
==13689==    by 0x552EF4: Fprogn (eval.c:468)
==13689==    by 0x55328B: funcall_lambda (eval.c:3042)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x54FACF: Fcall_interactively (callint.c:836)
==13689==    by 0x5536C7: Ffuncall (eval.c:2822)
==13689==
==13689== Syscall param rt_sigaction(act->sa_mask) points to 
uninitialised byte(s)
==13689==    at 0xA5180FA: __libc_sigaction (sigaction.c:64)
==13689==    by 0xA517F05: signal (signal.c:47)
==13689==    by 0x4E2576: terminate_due_to_signal (emacs.c:351)
==13689==    by 0x4FA79D: handle_fatal_signal (sysdep.c:1630)
==13689==    by 0x4FA9A2: deliver_fatal_thread_signal (sysdep.c:1604)
==13689==    by 0xA2D333F: ??? (in 
/lib/x86_64-linux-gnu/libpthread-2.19.so)
==13689==    by 0x53B84D: Fgarbage_collect (lisp.h:704)
==13689==    by 0x5534D1: Ffuncall (lisp.h:4564)
==13689==    by 0x5878E4: exec_byte_code (bytecode.c:916)
==13689==    by 0x55318E: funcall_lambda (eval.c:3049)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x55491B: Fapply (eval.c:2354)
==13689==  Address 0xffeffc528 is on thread 1's stack
==13689==  Uninitialised value was created by a heap allocation
==13689==    at 0x4C2AB80: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==13689==    by 0x53845E: lisp_malloc (alloc.c:907)
==13689==    by 0x5393C2: allocate_buffer (alloc.c:3140)
==13689==    by 0x502477: Fmake_indirect_buffer (buffer.c:779)
==13689==    by 0x552BC6: eval_sub (eval.c:2191)
==13689==    by 0x5553EB: Fsetq (eval.c:545)
==13689==    by 0x552CDA: eval_sub (eval.c:2133)
==13689==    by 0x552EF4: Fprogn (eval.c:468)
==13689==    by 0x55328B: funcall_lambda (eval.c:3042)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x54FACF: Fcall_interactively (callint.c:836)
==13689==    by 0x5536C7: Ffuncall (eval.c:2822)
==13689==
Fatal error 11: Segmentation fault
Backtrace:
./temacs[0x4fb82b]
./temacs[0x4e25ae]
./temacs[0x4fa79e]
./temacs[0x4fa9a3]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10340)[0xa2d3340]
./temacs[0x53b84e]
./temacs[0x5534d2]
./temacs[0x5878e5]
./temacs[0x55318f]
./temacs[0x5534fb]
./temacs[0x55491c]
./temacs[0x5535da]
./temacs[0x5878e5]
./temacs[0x55318f]
./temacs[0x5534fb]
./temacs[0x5878e5]
./temacs[0x55318f]
./temacs[0x5534fb]
./temacs[0x5878e5]
./temacs[0x552bc7]
./temacs[0x555e79]
./temacs[0x5888ad]
./temacs[0x55318f]
./temacs[0x5534fb]
./temacs[0x5878e5]
./temacs[0x55318f]
./temacs[0x5534fb]
./temacs[0x5878e5]
./temacs[0x55318f]
./temacs[0x552664]
./temacs[0x5529ee]
./temacs[0x552ef5]
./temacs[0x55582e]
./temacs[0x552cdb]
./temacs[0x5553ec]
./temacs[0x552cdb]
./temacs[0x552ef5]
./temacs[0x55328c]
./temacs[0x5534fb]
./temacs[0x54fad0]
./temacs[0x5536c8]
...
==13689== Syscall param rt_sigprocmask(set) points to uninitialised 
byte(s)
==13689==    at 0xA2D05AA: pthread_sigmask (pthread_sigmask.c:53)
==13689==    by 0x4E25CE: terminate_due_to_signal (emacs.c:374)
==13689==    by 0x4FA79D: handle_fatal_signal (sysdep.c:1630)
==13689==    by 0x4FA9A2: deliver_fatal_thread_signal (sysdep.c:1604)
==13689==    by 0xA2D333F: ??? (in 
/lib/x86_64-linux-gnu/libpthread-2.19.so)
==13689==    by 0x53B84D: Fgarbage_collect (lisp.h:704)
==13689==    by 0x5534D1: Ffuncall (lisp.h:4564)
==13689==    by 0x5878E4: exec_byte_code (bytecode.c:916)
==13689==    by 0x55318E: funcall_lambda (eval.c:3049)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x55491B: Fapply (eval.c:2354)
==13689==    by 0x5535D9: Ffuncall (eval.c:2796)
==13689==  Address 0xffeffc7b0 is on thread 1's stack
==13689==  Uninitialised value was created by a heap allocation
==13689==    at 0x4C2AB80: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==13689==    by 0x53845E: lisp_malloc (alloc.c:907)
==13689==    by 0x5393C2: allocate_buffer (alloc.c:3140)
==13689==    by 0x502477: Fmake_indirect_buffer (buffer.c:779)
==13689==    by 0x552BC6: eval_sub (eval.c:2191)
==13689==    by 0x5553EB: Fsetq (eval.c:545)
==13689==    by 0x552CDA: eval_sub (eval.c:2133)
==13689==    by 0x552EF4: Fprogn (eval.c:468)
==13689==    by 0x55328B: funcall_lambda (eval.c:3042)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x54FACF: Fcall_interactively (callint.c:836)
==13689==    by 0x5536C7: Ffuncall (eval.c:2822)
==13689==
==13689== Syscall param tgkill(sig) contains uninitialised byte(s)
==13689==    at 0xA2D320B: raise (pt-raise.c:37)
==13689==    by 0x4E25D5: terminate_due_to_signal (emacs.c:378)
==13689==    by 0x4FA79D: handle_fatal_signal (sysdep.c:1630)
==13689==    by 0x4FA9A2: deliver_fatal_thread_signal (sysdep.c:1604)
==13689==    by 0xA2D333F: ??? (in 
/lib/x86_64-linux-gnu/libpthread-2.19.so)
==13689==    by 0x53B84D: Fgarbage_collect (lisp.h:704)
==13689==    by 0x5534D1: Ffuncall (lisp.h:4564)
==13689==    by 0x5878E4: exec_byte_code (bytecode.c:916)
==13689==    by 0x55318E: funcall_lambda (eval.c:3049)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x55491B: Fapply (eval.c:2354)
==13689==    by 0x5535D9: Ffuncall (eval.c:2796)
==13689==  Uninitialised value was created by a heap allocation
==13689==    at 0x4C2AB80: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==13689==    by 0x53845E: lisp_malloc (alloc.c:907)
==13689==    by 0x5393C2: allocate_buffer (alloc.c:3140)
==13689==    by 0x502477: Fmake_indirect_buffer (buffer.c:779)
==13689==    by 0x552BC6: eval_sub (eval.c:2191)
==13689==    by 0x5553EB: Fsetq (eval.c:545)
==13689==    by 0x552CDA: eval_sub (eval.c:2133)
==13689==    by 0x552EF4: Fprogn (eval.c:468)
==13689==    by 0x55328B: funcall_lambda (eval.c:3042)
==13689==    by 0x5534FA: Ffuncall (eval.c:2876)
==13689==    by 0x54FACF: Fcall_interactively (callint.c:836)
==13689==    by 0x5536C7: Ffuncall (eval.c:2822)
==13689==
==13689==
==13689== HEAP SUMMARY:
==13689==     in use at exit: 20,334,516 bytes in 92,065 blocks
==13689==   total heap usage: 882,254 allocs, 790,189 frees, 263,955,382 
bytes allocated
==13689==
==13689== LEAK SUMMARY:
==13689==    definitely lost: 7,928 bytes in 60 blocks
==13689==    indirectly lost: 25,685 bytes in 870 blocks
==13689==      possibly lost: 371,224 bytes in 4,970 blocks
==13689==    still reachable: 18,976,287 bytes in 82,851 blocks
==13689==         suppressed: 0 bytes in 0 blocks
==13689== Rerun with --leak-check=full to see details of leaked memory
==13689==
==13689== For counts of detected and suppressed errors, rerun with: -v
==13689== ERROR SUMMARY: 1842 errors from 10 contexts (suppressed: 
190248 from 753)
[1]    13689 killed     valgrind --suppressions=valgrind.supp 
--track-origins=yes ./temacs -Q


Here is a similar backtrace from temacs.

(gdb) bt full 6
#0  mark_object (arg=<optimized out>) at alloc.c:6191
        ptr = <optimized out>
        ptrx = <optimized out>
        obj = 8388355822696755058
        cdr_count = 0
#1  0x000000000053b8a0 in Fgarbage_collect () at alloc.c:5647
        nextb = 0x1d45000
        stack_top_variable = 0 '\000'
        i = <optimized out>
        message_p = false
        retval = <optimized out>
        tot_before = 0
#2  0x00000000005534d2 in maybe_gc () at lisp.h:4564
No locals.
#3  Ffuncall (nargs=2, args=0x7fffffffcf18) at eval.c:2766
        fun = <optimized out>
        original_fun = <optimized out>
        numargs = 1
        val = <optimized out>
        internal_args = <optimized out>
        i = <optimized out>
#4  0x00000000005878e5 in exec_byte_code (bytestr=2, vector=2866666, 
maxdepth=238,
    args_template=12116274, nargs=140737488342800, args=0x2) at 
bytecode.c:916
        targets = {0x58797c <exec_byte_code+988>, 0x58813f 
<exec_byte_code+2975>,
          0x588144 <exec_byte_code+2980>, 0x588149 
<exec_byte_code+2985>,
          0x587772 <exec_byte_code+466>, 0x587778 <exec_byte_code+472>,
          0x588919 <exec_byte_code+4985>, 0x588956 
<exec_byte_code+5046>,
          0x5889d8 <exec_byte_code+5176>, 0x5889dd 
<exec_byte_code+5181>,
          0x5889a7 <exec_byte_code+5127>, 0x5889ac 
<exec_byte_code+5132>,
          0x5877a9 <exec_byte_code+521>, 0x5877b0 <exec_byte_code+528>,
          0x587e17 <exec_byte_code+2167>, 0x5889b1 
<exec_byte_code+5137>,
          0x587f83 <exec_byte_code+2531>, 0x587f88 
<exec_byte_code+2536>,
          0x588005 <exec_byte_code+2661>, 0x58800a 
<exec_byte_code+2666>,
          0x587815 <exec_byte_code+629>, 0x587818 <exec_byte_code+632>,
          0x587fb4 <exec_byte_code+2580>, 0x587f8d 
<exec_byte_code+2541>,
          0x588036 <exec_byte_code+2710>, 0x58803b 
<exec_byte_code+2715>,
          0x588040 <exec_byte_code+2720>, 0x588045 
<exec_byte_code+2725>,
          0x587881 <exec_byte_code+737>, 0x587888 <exec_byte_code+744>,
          0x587ff0 <exec_byte_code+2640>, 0x58800f 
<exec_byte_code+2671>,
          0x588091 <exec_byte_code+2801>, 0x588096 
<exec_byte_code+2806>,
          0x58809b <exec_byte_code+2811>, 0x5880a5 
<exec_byte_code+2821>,
          0x5878c3 <exec_byte_code+803>, 0x5878c8 <exec_byte_code+808>,
          0x588055 <exec_byte_code+2741>, 0x58806a 
<exec_byte_code+2762>,
          0x5879f2 <exec_byte_code+1106>, 0x5879f7 
<exec_byte_code+1111>,
          0x5879fc <exec_byte_code+1116>, 0x5880ca 
<exec_byte_code+2858>,
          0x587905 <exec_byte_code+869>, 0x587908 <exec_byte_code+872>,
          0x5880b5 <exec_byte_code+2837>, 0x5879cb 
<exec_byte_code+1067>,
          0x58881e <exec_byte_code+4734>, 0x588813 
<exec_byte_code+4723>,
          0x58871f <exec_byte_code+4479>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x588b3e <exec_byte_code+5534>, 0x588bcc 
<exec_byte_code+5676>,
          0x588c03 <exec_byte_code+5731>, 0x588c3a 
<exec_byte_code+5786>,
          0x588c71 <exec_byte_code+5841>, 0x587eda 
<exec_byte_code+2362>,
          0x587f14 <exec_byte_code+2420>, 0x588cb2 
<exec_byte_code+5906>,
          0x587e9f <exec_byte_code+2303>, 0x587f48 
<exec_byte_code+2472>,
          0x588ce4 <exec_byte_code+5956>, 0x588d18 
<exec_byte_code+6008>,
          0x588d40 <exec_byte_code+6048>, 0x588d74 
<exec_byte_code+6100>,
          0x588da9 <exec_byte_code+6153>, 0x588e20 
<exec_byte_code+6272>,
          0x588e48 <exec_byte_code+6312>, 0x588e7c 
<exec_byte_code+6364>,
          0x588eb4 <exec_byte_code+6420>, 0x588edc 
<exec_byte_code+6460>,
          0x588f04 <exec_byte_code+6500>, 0x588f38 
<exec_byte_code+6552>,
          0x588f6c <exec_byte_code+6604>, 0x588fa0 
<exec_byte_code+6656>,
          0x588fd8 <exec_byte_code+6712>, 0x58900d 
<exec_byte_code+6765>,
          0x589042 <exec_byte_code+6818>, 0x5890b9 
<exec_byte_code+6937>,
          0x5890f2 <exec_byte_code+6994>, 0x58912b 
<exec_byte_code+7051>,
          0x589244 <exec_byte_code+7332>, 0x5891d2 
<exec_byte_code+7218>,
          0x58920b <exec_byte_code+7275>, 0x58927d 
<exec_byte_code+7389>,
          0x5892b6 <exec_byte_code+7446>, 0x5892eb 
<exec_byte_code+7499>,
          0x58931d <exec_byte_code+7549>, 0x589352 
<exec_byte_code+7602>,
          0x589387 <exec_byte_code+7655>, 0x5893bc 
<exec_byte_code+7708>,
          0x58945a <exec_byte_code+7866>, 0x58794d <exec_byte_code+941>,
          0x589490 <exec_byte_code+7920>, 0x5894b8 
<exec_byte_code+7960>,
          0x589527 <exec_byte_code+8071>, 0x58955d 
<exec_byte_code+8125>,
          0x589593 <exec_byte_code+8179>, 0x5895bb 
<exec_byte_code+8219>,
          0x5895e5 <exec_byte_code+8261>, 0x58960f 
<exec_byte_code+8303>,
          0x58963c <exec_byte_code+8348>, 0x58797c <exec_byte_code+988>,
          0x58966b <exec_byte_code+8395>, 0x589698 
<exec_byte_code+8440>,
          0x5896c5 <exec_byte_code+8485>, 0x5896f2 
<exec_byte_code+8530>,
          0x58971f <exec_byte_code+8575>, 0x58974c 
<exec_byte_code+8620>,
          0x58794d <exec_byte_code+941>, 0x58797c <exec_byte_code+988>,
          0x589774 <exec_byte_code+8660>, 0x5897b3 
<exec_byte_code+8723>,
          0x5897db <exec_byte_code+8763>, 0x589803 
<exec_byte_code+8803>,
          0x589837 <exec_byte_code+8855>, 0x58986b 
<exec_byte_code+8907>,
          0x5882f2 <exec_byte_code+3410>, 0x5883c8 
<exec_byte_code+3624>,
          0x589a74 <exec_byte_code+9428>, 0x589aa8 
<exec_byte_code+9480>,
          0x5883fc <exec_byte_code+3676>, 0x588429 
<exec_byte_code+3721>,
          0x58797c <exec_byte_code+988>, 0x58866b <exec_byte_code+4299>,
          0x587a05 <exec_byte_code+1125>, 0x587e2c 
<exec_byte_code+2188>,
          0x587c71 <exec_byte_code+1745>, 0x587b13 
<exec_byte_code+1395>,
          0x587d73 <exec_byte_code+2003>, 0x5885f7 
<exec_byte_code+4183>,
          0x58864a <exec_byte_code+4266>, 0x587fc9 
<exec_byte_code+2601>,
          0x58853c <exec_byte_code+3996>, 0x5884de 
<exec_byte_code+3902>,
          0x5886b7 <exec_byte_code+4375>, 0x5886e6 
<exec_byte_code+4422>,
          0x58884d <exec_byte_code+4781>, 0x588899 
<exec_byte_code+4857>,
          0x5888d1 <exec_byte_code+4913>, 0x588ae8 
<exec_byte_code+5448>,
          0x5884b1 <exec_byte_code+3857>, 0x588451 
<exec_byte_code+3761>,
          0x588489 <exec_byte_code+3817>, 0x589893 
<exec_byte_code+8947>,
          0x5898bb <exec_byte_code+8987>, 0x5898e3 
<exec_byte_code+9027>,
          0x58990b <exec_byte_code+9067>, 0x58993f 
<exec_byte_code+9119>,
          0x589973 <exec_byte_code+9171>, 0x5899a7 
<exec_byte_code+9223>,
          0x5899db <exec_byte_code+9275>, 0x588155 
<exec_byte_code+2997>,
          0x588189 <exec_byte_code+3049>, 0x5881bd 
<exec_byte_code+3101>,
          0x5881e5 <exec_byte_code+3141>, 0x588219 
<exec_byte_code+3193>,
          0x58824d <exec_byte_code+3245>, 0x588285 
<exec_byte_code+3301>,
          0x5882bd <exec_byte_code+3357>, 0x5893f1 
<exec_byte_code+7761>,
          0x589426 <exec_byte_code+7814>, 0x5880cf 
<exec_byte_code+2863>,
          0x58810d <exec_byte_code+2925>, 0x58797c <exec_byte_code+988>,
          0x587a99 <exec_byte_code+1273>, 0x587d18 
<exec_byte_code+1912>,
          0x587b83 <exec_byte_code+1507>, 0x587c0e 
<exec_byte_code+1646>,
          0x58856b <exec_byte_code+4043>, 0x588dde 
<exec_byte_code+6206>,
          0x589077 <exec_byte_code+6871>, 0x5894e5 
<exec_byte_code+8005>,
          0x5889e2 <exec_byte_code+5186>, 0x588a1f 
<exec_byte_code+5247>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x588a70 <exec_byte_code+5328>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x58797c <exec_byte_code+988>, 0x58797c <exec_byte_code+988>,
          0x588ab8 <exec_byte_code+5400> <repeats 64 times>}
        stack = {
          pc = 0xac400c <pure+2669004> 
"\210\320\f\b\"\210\321\f\322\"\210\323\f\b\"\210\n\204W",
          byte_string = 9147665,
          byte_string_start = 0xac3fd0 <pure+2668944> 
"\306\b!\020\307\b!\031\310\b\236\032\311\033ʉ\034\035\v\312\036\026\211\036\027\203\060",
          next = 0x7fffffffd120
        }
        result = 2
        type = (unknown: 4294954768)
#5  0x000000000055318f in funcall_lambda (fun=9147605, 
nargs=nargs <at> entry=1,
    arg_vector=arg_vector <at> entry=0x7fffffffd0d0) at eval.c:3049
        val = <optimized out>
        syms_left = 12116274
        lexenv = 12116274
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
(More stack frames follow...)

Lisp Backtrace:
"Automatic GC" (0xb73088)
"x-setup-function-keys" (0xffffcf20)
"x-create-frame-with-faces" (0xffffd0d0)
"make-frame" (0xffffd200)
"let*" (0xffffd3f8)
"setq" (0xffffd4e8)
"stupider-speed-read" (0xffffd6c8)
"call-interactively" (0xffffd8d0)
"command-execute" (0xffffda40)
"execute-extended-command" (0xffffdba8)
"call-interactively" (0xffffde20)
"command-execute" (0xffffdf68)





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18180; Package emacs. (Mon, 04 Aug 2014 04:23:02 GMT) Full text and rfc822 format available.

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

From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Mat Smiglarski <penthief <at> SDF.ORG>
Cc: 18180 <at> debbugs.gnu.org
Subject: Re: bug#18180: 24.3.92; Segfault in mark_object
Date: Mon, 04 Aug 2014 08:22:45 +0400
On 08/03/2014 07:03 PM, Mat Smiglarski wrote:

> 2. Call some code which kills and creates a frame between 2 and 25 times.

This doesn't look specific and useful. Do you create frame(s) with
some non-default parameters?  After making changes in frame-related
code, I usually do something like this:

(defun frame-test ()
  (interactive)
  (dotimes (i 10)
    (let ((frame-list nil))
      (dotimes (j 10)
	(setq frame-list (cons (make-frame) frame-list)))
      (mapcar #'delete-frame frame-list))))

Can you reproduce your crash with this?

Dmitry





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18180; Package emacs. (Mon, 04 Aug 2014 04:40:03 GMT) Full text and rfc822 format available.

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

From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Mat Smiglarski <penthief <at> SDF.ORG>
Cc: 18180 <at> debbugs.gnu.org
Subject: Re: bug#18180: 24.3.92; Segfault in mark_object
Date: Mon, 04 Aug 2014 08:39:45 +0400
On 08/03/2014 07:03 PM, Mat Smiglarski wrote:

> $ emacs -Q

[...skip...]

> "stupider-speed-read" (0xffffd6c8)

What's this?  This doesn't look like a feature comes from
standard Lisp code.  I'm just curious how you get into
this by running with -Q...

Dmitry





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18180; Package emacs. (Mon, 04 Aug 2014 06:47:02 GMT) Full text and rfc822 format available.

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

From: Mat Smiglarski <penthief <at> SDF.ORG>
To: Dmitry Antipov <dmantipov <at> yandex.ru>
Cc: 18180 <at> debbugs.gnu.org
Subject: Re: bug#18180: 24.3.92; Segfault in mark_object
Date: Mon, 04 Aug 2014 07:46:32 +0100
On 2014-08-04 05:22, Dmitry Antipov wrote:
> On 08/03/2014 07:03 PM, Mat Smiglarski wrote:
> 
>> 2. Call some code which kills and creates a frame between 2 and 25 
>> times.
> 
> This doesn't look specific and useful. Do you create frame(s) with
> some non-default parameters?  After making changes in frame-related
> code, I usually do something like this:
> 
> (defun frame-test ()
>   (interactive)
>   (dotimes (i 10)
>     (let ((frame-list nil))
>       (dotimes (j 10)
> (setq frame-list (cons (make-frame) frame-list)))
>       (mapcar #'delete-frame frame-list))))
> 
> Can you reproduce your crash with this?

No that works fine.

On 2014-08-04 05:39, Dmitry Antipov wrote:
> On 08/03/2014 07:03 PM, Mat Smiglarski wrote:
> 
>> $ emacs -Q
> 
> [...skip...]
> 
>> "stupider-speed-read" (0xffffd6c8)
> 
> What's this?  This doesn't look like a feature comes from
> standard Lisp code.  I'm just curious how you get into
> this by running with -Q...

That is the code being used as a stress test; the code that I call 
between 2 and 25 times.

Perhaps you need to see the code, which has been slightly renamed. It 
can be made shorter by removing the comments and some key mappings but 
that doesn't seem very helpful.

1. Create stress-test.el with the following

(require 'cl)

(defvar stress-buffer-name "stress" "The name of the buffer created by 
`stress'.")
(defvar pause-time 0.1)

(defvar stress-map
  (let ((km (make-sparse-keymap)))
    (define-key km (kbd "q") 'stress-quit)
    (define-key km (kbd "SPC") 'stress-toggle-pause)
    (define-key km (kbd "n") 'stress-tick)
    km)
  "Keymap for `stress-speed-read'.")

(defun stress-speed-read (source-buffer)
  "Create and run a speed reading frame for `SOURCE-BUFFER'.
Words from BUFFER are displayed individually and progressed by an 
adjustable timer."
  (interactive "bCreate stress-speed-reader for source buffer: ")
  (stress-quit) ; Ensure that it is starting from a clean state.
  (setq min-pause-time 0.1)
  (setq tokeniser "[^ \n]+")
  (setq *source-buffer* (make-indirect-buffer source-buffer "source 
buffer"))
  (setq stress-frame
        (let* ((width 200)
               (left (- (/ (- (x-display-pixel-width) ; center frame
                              width) 2)
                        8)))
          (make-frame `((height . 1)
                        (left . ,left)
                        (top . 100)
                        (mode-line-format . nil)
                        (cursor-type . nil)
                        (minibuffer . nil)
                        (left-margin . 0)
                        (left-fringe . 0)
                        (right-fringe . 0)
                        (tool-bar-lines . 0)
                        (menu-bar-lines . 0)
                        (line-spacing . 0)
                        (unsplittable . t)
                        (fill-column . 30)))))
  (setq stress-buffer (get-buffer-create stress-buffer-name))
  (with-current-buffer *source-buffer*
    (goto-char (point-min))
    (with-selected-frame stress-frame
      (display-buffer stress-buffer '((display-buffer-same-window)))
    (stress--do
     (fundamental-mode)
     (setq buffer-read-only t)
     (use-local-map stress-map)
     (set-frame-font (font-spec :size 50))))
  (stress--start)))

(defmacro stress--do (&rest body)
  "Do something in the speed reading frame."
  `(with-selected-frame stress-frame
     (with-current-buffer stress-buffer
       ,@body)))

(defun stress-running-p ()
  "Is the speed reader running."
  (and (get-buffer stress-buffer-name) t))

(defun stress-toggle-pause ()
  "Pause or unpause."
  (interactive)
  (if (timerp resume-timer)
      (stress--stop)
    (stress--start)))

(defun stress--start ()
  "Start, and then continue on a timer."
  (stress-tick)
  (stress--resume pause-time))

(defun stress--resume (delay)
  "Iterate after a delay of `DELAY' seconds."
  (if (> delay 0)
      (setq resume-timer
            (run-at-time
             (format "%2f seconds" delay)
             nil #'stress-tick))
    (stress-quit)))

(defun stress--stop ()
  "Stop. Well more of a pause than a stop, really."
  (when (and (boundp 'resume-timer) (timerp resume-timer))
    (cancel-timer resume-timer)
    (setq resume-timer nil)))

(defun stress-quit ()
  "Quit the speed reader."
  (interactive)
  (stress--stop)
  (when (and (boundp 'stress-buffer)
             (buffer-live-p stress-buffer))
    (kill-buffer stress-buffer)
    (setq stress-buffer nil))
  (when (buffer-live-p (get-buffer "source buffer"))
    (kill-buffer "source buffer")
    (setq *source-buffer* nil))
  (when (and (boundp 'stress-frame)
             (frame-live-p stress-frame))
    (delete-frame stress-frame)
    (setq stress-frame nil)))

(defun stress-tick ()
  "Progress the reading.
This function handles being called either during manual or automatic 
iteration,
whether paused or not."
  (interactive)
  (let ((was-running-p (and (boundp 'resume-timer) (timerp 
resume-timer)))
        (s (with-current-buffer *source-buffer*
             (and (search-forward-regexp tokeniser nil t)
                  (match-string-no-properties 0)))))
    (stress--stop) ; ensure stopped
    (if s
        (let ((center (max (/ (length s) 2) 1)))
          (stress--do
           (setq buffer-read-only nil)
           (put-text-property 0 (length s) 'face '(foreground-color . 
"DeepSkyBlue") s)
           (put-text-property (- center 1) center 'face 
'(foreground-color . "tomato") s)
           (goto-char (point-min))
           (loop repeat
                 (max (- (/ 30 2) center) 0)
                 do (insert " "))
           (insert s)
           (delete-region (point) (point-max))
           (setq buffer-read-only t)
           (when was-running-p
             (stress--resume (* (stress--punctuation-weighting s)
                                  pause-time)))))
      (stress-quit))))

(defun stress--punctuation-weighting (str)
  "Returns the punctuation delay modifier for `STR', where 0 is a 
request to stop."
  (if str
      (case (last (car (last (string-to-list str))))
        (?, 1.4)
        (?\; 1.6)
        (?. 2)
        (?\: 2.2)
        (t 1))
    0))

(defun stress--log ()
  "User feedback."
  (message (format "Pause-time: %.2f" pause-time)))

2. Start emacs

$ emacs -Q -l stress-test.el

3. Setup a macro

C-x ( M-x stress-speed-read RET C-x )

4. Delete and restart the frame and time 20 times, although 4 or 5 times 
is usually enough on this laptop.
Note that q is bound in the code above.

q C-x e q C-x e q C-x e q C-x e q C-x e q C-x e q C-x e q C-x e q C-x e 
q C-x e
q C-x e q C-x e q C-x e q C-x e q C-x e q C-x e q C-x e q C-x e q C-x e 
q C-x e

5. See it crash.

Program received signal SIGSEGV, Segmentation fault.
0x00000000005b9d1a in mark_object (arg=140737253503599) at alloc.c:6318
6318	      FLOAT_MARK (XFLOAT (obj));

I have not been able to reproduce this by automating the calls to 
stress-speed-read.
Increasing stress-pause-time makes the crash more difficult to 
reproduce.
Isolating the make-frame call, and running that 20 times does not cause 
the crash.

Regards,
Mat




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18180; Package emacs. (Mon, 04 Aug 2014 09:17:02 GMT) Full text and rfc822 format available.

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

From: Dmitry Antipov <dmantipov <at> yandex.ru>
To: Mat Smiglarski <penthief <at> SDF.ORG>
Cc: 18180 <at> debbugs.gnu.org
Subject: Re: bug#18180: 24.3.92; Segfault in mark_object
Date: Mon, 04 Aug 2014 13:15:32 +0400
On 08/04/2014 10:46 AM, Mat Smiglarski wrote:

> I have not been able to reproduce this by automating the calls to stress-speed-read.

Reproduced with (dotimes (i 100) (stress-speed-read (current-buffer)))).

Ugh, it seems that we never initialize undo-list of indirect buffer.  You can use
this trivial fix just to avoid crash:

=== modified file 'src/buffer.c'
--- src/buffer.c	2014-07-27 13:21:30 +0000
+++ src/buffer.c	2014-08-04 09:06:08 +0000
@@ -825,6 +825,7 @@
   name = Fcopy_sequence (name);
   set_string_intervals (name, NULL);
   bset_name (b, name);
+  bset_undo_list (b, BVAR (b->base_buffer, undo_list));

   reset_buffer (b);
   reset_buffer_local_variables (b, 1);

But this bug raises an interesting question: should an indirect buffer's undo list
be always the same as the one of its base buffer?

Dmitry





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18180; Package emacs. (Wed, 06 Aug 2014 17:30:03 GMT) Full text and rfc822 format available.

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

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Dmitry Antipov <dmantipov <at> yandex.ru>
Cc: Mat Smiglarski <penthief <at> SDF.ORG>, 18180 <at> debbugs.gnu.org
Subject: Re: bug#18180: 24.3.92; Segfault in mark_object
Date: Wed, 06 Aug 2014 13:29:05 -0400
> But this bug raises an interesting question: should an indirect
> buffer's undo list be always the same as the one of its base buffer?

Very much so, yes!


        Stefan




bug marked as fixed in version 24.3.93, send any further explanations to 18180 <at> debbugs.gnu.org and Mat Smiglarski <penthief <at> SDF.ORG> Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Tue, 12 Aug 2014 05:43: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. (Tue, 09 Sep 2014 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 281 days ago.

Previous Next


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