Dear Emacs masters,
I have been experiencing repeated crashes on Emacs, and am wondering if the following reports could lead someone to figure out what the problem might be. These crashes occur after a few hours of normal use, almost always during reading mail with vm. I am attaching an abbreviated backtrace when running emacs under a debugger, and and the full one (8Mb) is available at
https://www.dropbox.com/s/3hg8v9ct2omc8x9/emacs-bt.txt. I am happy to try helping with the debugging given specific instructions on commands to give lldb.
I see this crash on both
GNU Emacs 24.3.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)
Windowing system distributor `Apple', version 10.3.1265
and the most recent emacs mac version by YAMAMOTO Mitsuharu.
I wrote YAMAMOTO Mitsuharu, the Emacs for mac developer, and his response is
> The backtrace shows that the stack is used up because some deeply
> nested Lisp data structure is recursively traversed in garbage
> collection (or possibly an unknown bug in the GC code). In normal OSX
> applications, the stack depth for the main thread is set to 8MiB by
> default, and Emacs slightly enlarges it to 8720000B (on 64-bit binary)
> by some formula in src/emacs.c:
> 817 long newlim;
> 818 extern size_t re_max_failures;
> 819 /* Approximate the amount regex.c needs per unit of re_max_failures. */
> 820 int ratio = 20 * sizeof (char *);
> 821 /* Then add 33% to cover the size of the smaller stacks that regex.c
> 822 successively allocates and discards, on its way to the maximum. */
> 823 ratio += ratio / 3;
> 824 /* Add in some extra to cover
> 825 what we're likely to use for other reasons. */
> 826 newlim = re_max_failures * ratio + 200000;
> Probably you can tweak the ratio value above and see if it mitigates
> the problem.
I am unable to follow this suggestion (cannot compile emacs on my Mac), but perhaps it's useful to someone else.
Here is the bug report itself:
------------------------------------------------------------------------
In GNU Emacs 24.3.2 (x86_64-apple-darwin11.4.2, Carbon Version 1.6.0 AppKit 1138.51)
of 2013-11-08 on Yukikaze.local
Windowing system distributor `Apple Inc.', version 10.9.0
Configured using:
`configure '--with-mac' '--enable-mac-app=/Users/xin/Documents/emacs-mac-port/build' '--prefix=/Users/xin/Documents/emacs-mac-port/build''
Important settings:
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Dired by name
Minor modes in effect:
delete-selection-mode: t
display-time-mode: t
auto-image-file-mode: t
shell-dirtrack-mode: t
tooltip-mode: t
mac-mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
buffer-read-only: t
line-number-mode: t
transient-mark-mode: t
abbrev-mode: t
Recent input:
Recent messages:
Loading .session...done
For information about GNU Emacs and the GNU system, type C-h C-a. [2 times]
ls does not support --dired; see `dired-use-ls-dired' for more details.
Quit
Move: 1 of 2
Move: 2 of 2
Move: 2 files
Deleting...done
Deleting...done
Making completion list...
Load-path shadows:
None found.
Features:
(shadow vm-reply vm-pcrisis vcard u-vm-color smtpmail w3m browse-url doc-view jka-compr image-mode w3m-hist w3m-fb w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util mairix vm-rfaddons vm-page vm-minibuf emacsbug dired-aux info view cal-china lunar solar cal-dst cal-bahai cal-islam cal-julian cal-hebrew holidays hol-loaddefs mule-util cal-move goto-addr thingatpt cal-x em-unix em-term term disp-table ehelp electric em-script em-prompt em-ls em-hist em-pred em-glob em-dirs em-cmpl em-basic em-banner em-alias esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg eldoc esh-groups eshell esh-module esh-mode esh-util srecode/srt-mode semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn semantic/format srecode/template srecode/srt-wy semantic/wisent semantic/wisent/wisent semantic/ctxt srecode/ctxt semantic/tag-ls semantic/find srecode/compile srecode/dictionary srecode/table srecode/map srecode semanticdb-matlab semantic/db semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet eieio-base eieio-opt help-mode speedbar sb-image ezimage dframe find-func cedet-matlab matlab derived tempo matlab-load osx-osascript message-x server url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap telnet dired-efap bbdb-vcard-export bbdb-print sendmail flyspell message mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mail-utils gmm-utils mailheader bbdb-vm vm-virtual vm-summary-faces vm-pop utf7 vm-imap vm-thread vm-mime vm-mouse vm-toolbar vm-menu vm-window vm-folder vm-crypto vm-summary vm-motion vm-undo vm-misc vm-message vm-macro bbdb-snarf mail-extr rfc822 bbdb-com mailabbrev bbdb-autoloads bbdb timezone ffap url-parse url-vars auto-capitalize dired-x cl-macs gv rect-mark preview-latex tex-site auto-loads delsel appt cus-edit wid-edit dictionary link connection icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs rect ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff dired ispell easymenu ibuffer edmacro kmacro vm-autoloads vm-vars vm-version vm session uniquify warnings time image-file cus-start cus-load password cl tramp tramp-compat auth-source eieio byte-opt bytecomp byte-compile cconv gnus-util mm-util mail-prsvr password-cache tramp-loaddefs shell pcomplete comint ansi-color ring format-spec advice help-fns cl-lib advice-preload time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel mac-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote mac multi-tty make-network-process emacs)
An abbreviated backtrace:
Last login: Sun Dec 1 15:52:10 on ttys000
udp003015uds:~ $ lldb /Applications/Emacs.app/Contents/MacOS/Emacs
Current executable set to '/Applications/Emacs.app/Contents/MacOS/Emacs' (x86_64).
(lldb) run
Process 5425 launched: '/Applications/Emacs.app/Contents/MacOS/Emacs' (x86_64)
Process 5425 stopped and restarted: thread 1 received signal: SIGCHLD
Process 5425 stopped and restarted: thread 1 received signal: SIGCHLD
Process 5425 stopped and restarted: thread 1 received signal: SIGCHLD
Process 5425 stopped and restarted: thread 1 received signal: SIGCHLD
Process 5425 stopped and restarted: thread 1 received signal: SIGCHLD
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
...
Process 5425 stopped and restarted: thread 1 received signal: SIGCHLD
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
2013-12-01 15:56:54.773 Emacs[5425:d0b] -_continuousScroll is deprecated for NSScrollWheel. Please use -hasPreciseScrollingDeltas.
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
...
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGCHLD
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped and restarted: thread 1 received signal: SIGALRM
Process 5425 stopped
* thread #1: tid = 0x484e3, 0x00000001000f61d1 Emacs`mark_object + 1073, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=2, address=0x7fff5f3aeff8)
frame #0: 0x00000001000f61d1 Emacs`mark_object + 1073
Emacs`mark_object + 1073:
-> 0x1000f61d1: callq 0x1000f5da0 ; mark_object
0x1000f61d6: movq 32(%r14), %rdi
0x1000f61da: callq 0x1000f5da0 ; mark_object
0x1000f61df: movl (%r14), %eax
(lldb) bt
* thread #1: tid = 0x484e3, 0x00000001000f61d1 Emacs`mark_object + 1073, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=2, address=0x7fff5f3aeff8)
frame #0: 0x00000001000f61d1 Emacs`mark_object + 1073
frame #1: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #2: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #3: 0x00000001000f6443 Emacs`mark_object + 1699
frame #4: 0x00000001000f62ab Emacs`mark_object + 1291
frame #5: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #6: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #7: 0x00000001000f6443 Emacs`mark_object + 1699
frame #8: 0x00000001000f62ab Emacs`mark_object + 1291
frame #9: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #10: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #11: 0x00000001000f6443 Emacs`mark_object + 1699
frame #12: 0x00000001000f62ab Emacs`mark_object + 1291
...
frame #136042: 0x00000001000f61df Emacs`mark_object + 1087
frame #136043: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136044: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136045: 0x00000001000f61df Emacs`mark_object + 1087
frame #136046: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136047: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136048: 0x00000001000f61df Emacs`mark_object + 1087
frame #136049: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136050: 0x00000001000f5e20 Emacs`mark_object + 128
frame #136051: 0x00000001000f61d6 Emacs`mark_object + 1078
frame #136052: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #136053: 0x00000001000f61d6 Emacs`mark_object + 1078
frame #136054: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #136055: 0x00000001000f61d6 Emacs`mark_object + 1078
frame #136056: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136057: 0x00000001000f61df Emacs`mark_object + 1087
frame #136058: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136059: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136060: 0x00000001000f61df Emacs`mark_object + 1087
frame #136061: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #136062: 0x00000001000f61d6 Emacs`mark_object + 1078
frame #136063: 0x00000001000f61df Emacs`mark_object + 1087
frame #136064: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136065: 0x00000001000f61df Emacs`mark_object + 1087
frame #136066: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136067: 0x00000001000f61df Emacs`mark_object + 1087
frame #136068: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #136069: 0x00000001000f61d6 Emacs`mark_object + 1078
frame #136070: 0x00000001000f61a8 Emacs`mark_object + 1032
frame #136071: 0x00000001000f61d6 Emacs`mark_object + 1078
frame #136072: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136073: 0x00000001000f61df Emacs`mark_object + 1087
frame #136074: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136075: 0x00000001000f61df Emacs`mark_object + 1087
frame #136076: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136077: 0x00000001000f61df Emacs`mark_object + 1087
frame #136078: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136079: 0x00000001000f61df Emacs`mark_object + 1087
frame #136080: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136081: 0x00000001000f61df Emacs`mark_object + 1087
frame #136082: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136083: 0x00000001000f61df Emacs`mark_object + 1087
frame #136084: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136085: 0x00000001000f61df Emacs`mark_object + 1087
frame #136086: 0x00000001000f6443 Emacs`mark_object + 1699
frame #136087: 0x00000001000f65a9 Emacs`mark_buffer + 105
frame #136088: 0x00000001000faffd Emacs`Fgarbage_collect + 637
frame #136089: 0x000000010014ad63 Emacs`exec_byte_code + 1027
frame #136090: 0x00000001001169b7 Emacs`funcall_lambda + 871
frame #136091: 0x0000000100113968 Emacs`Ffuncall + 1160
frame #136092: 0x000000010014b108 Emacs`exec_byte_code + 1960
frame #136093: 0x00000001001169b7 Emacs`funcall_lambda + 871
frame #136094: 0x0000000100113968 Emacs`Ffuncall + 1160
frame #136095: 0x000000010014b108 Emacs`exec_byte_code + 1960
frame #136096: 0x00000001001169b7 Emacs`funcall_lambda + 871
frame #136097: 0x0000000100113968 Emacs`Ffuncall + 1160
frame #136098: 0x0000000100116b5e Emacs`call1 + 30
frame #136099: 0x0000000100131c4b Emacs`Fmapatoms + 203
frame #136100: 0x0000000100113990 Emacs`Ffuncall + 1200
frame #136101: 0x000000010014b108 Emacs`exec_byte_code + 1960
frame #136102: 0x00000001001169b7 Emacs`funcall_lambda + 871
frame #136103: 0x0000000100113968 Emacs`Ffuncall + 1160
frame #136104: 0x000000010014b108 Emacs`exec_byte_code + 1960
frame #136105: 0x00000001001169b7 Emacs`funcall_lambda + 871
frame #136106: 0x0000000100113968 Emacs`Ffuncall + 1160
frame #136107: 0x000000010014b108 Emacs`exec_byte_code + 1960
frame #136108: 0x00000001001161d7 Emacs`eval_sub + 1463
frame #136109: 0x00000001001152f5 Emacs`internal_catch + 213
frame #136110: 0x000000010014bca4 Emacs`exec_byte_code + 4932
frame #136111: 0x00000001001169b7 Emacs`funcall_lambda + 871
frame #136112: 0x0000000100113968 Emacs`Ffuncall + 1160
frame #136113: 0x000000010014b108 Emacs`exec_byte_code + 1960
frame #136114: 0x00000001001169b7 Emacs`funcall_lambda + 871
frame #136115: 0x00000001001165b3 Emacs`apply_lambda + 291
frame #136116: 0x00000001001162f7 Emacs`eval_sub + 1751
frame #136117: 0x0000000100111509 Emacs`Fprogn + 41
frame #136118: 0x000000010010709e Emacs`Fsave_excursion + 62
frame #136119: 0x0000000100115f95 Emacs`eval_sub + 885
frame #136120: 0x0000000100116969 Emacs`funcall_lambda + 793
frame #136121: 0x0000000100113968 Emacs`Ffuncall + 1160
frame #136122: 0x00000001001158f6 Emacs`apply1 + 38
frame #136123: 0x000000010010f8b9 Emacs`Fcall_interactively + 1321
frame #136124: 0x00000001001138a4 Emacs`Ffuncall + 964
frame #136125: 0x0000000100116b36 Emacs`call3 + 38
frame #136126: 0x00000001000aeb12 Emacs`command_loop_1 + 1554
frame #136127: 0x00000001001151f9 Emacs`internal_condition_case + 297
frame #136128: 0x00000001000ae4dd Emacs`command_loop_2 + 77
frame #136129: 0x00000001001152f5 Emacs`internal_catch + 213
frame #136130: 0x00000001000afee2 Emacs`recursive_edit_1 + 226
frame #136131: 0x00000001000a0b67 Emacs`Frecursive_edit + 231
frame #136132: 0x000000010009d8b8 Emacs`main + 5208
frame #136133: 0x0000000100002554 Emacs`start + 52
(lldb) exit
Quitting LLDB will kill one or more processes. Do you really want to proceed: [Y/n] y
udp003015uds:~ $
------------------------------------------------------------------------