Subject: bug#38956: 28.0.50; run-with-idle-timer (maybe) panic randomly on mac

From: changqi chen <[email-masked]>
Date: Sun, 5 Jan 2020 15:31:05 -0500

I use run-with-idle-timer to make a auto GC timer in my init file. However,
on macOS 10.15.2, my emacs randomly panic for no reason. I guess it make
be some problem happens in auto GC configuration. Then I comment those
block of code, my emacs doesn't panic after I comment those block of
code.

Here is my init configuration of GC:

```lisp

(defmacro k-time (&rest body)
  "Measure and return the time it takes evaluating BODY.”
  `(let ((time (current-time)))
     ,@body
     (float-time (time-since time))))

;; Set garbage collection threshold to 1GB.
(setq gc-cons-threshold 1000000000)

;; When idle for 15sec run the GC no matter what.
(defvar k-gc-timer
 (run-with-idle-timer 60 t
 (lambda ()
 (message "Garbage Collector has run for %.06fsec”
 (k-time (garbage-collect))))))
```

In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin19.2.0, NS appkit-1894.20 Version 10.15.2 (Build 19C57))
of 2020-01-04 built on ccQ-rMBP.local
Repository revision: cd7b1e3eeb48f7a0123968d3f33e8d96973ab2b6
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1894
System Description: Mac OS X 10.15.2

Recent messages:
[yas] Prepared just-in-time loading of snippets (but no snippets found).
ad-handle-definition: ‘er/expand-region’ got redefined
[yas] Prepared just-in-time loading of snippets successfully.
Turning on magit-auto-revert-mode...done
Starting Emacs daemon.
When done with this frame, type C-x 5 0

Configured features:
RSVG GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS
MODULES THREADS PDUMPER LCMS2 GMP

Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
paredit-mode: t
helm-gtags-mode: t
pyvenv-mode: t
TeX-PDF-mode: t
helm-mode: t
helm-autoresize-mode: t
helm--remap-mouse-mode: t
global-magit-file-mode: t
magit-auto-revert-mode: t
global-git-commit-mode: t
async-bytecomp-package-mode: t
shell-dirtrack-mode: t
google-this-mode: t
delete-selection-mode: t
yas-global-mode: t
yas-minor-mode: t
global-flycheck-mode: t
flycheck-mode: t
global-auto-complete-mode: t
auto-complete-mode: t
override-global-mode: t
show-paren-mode: t
global-display-line-numbers-mode: t
display-line-numbers-mode: t
global-hl-line-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-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
line-number-mode: t
transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug sendmail winner helm-command helm-elisp
helm-eval edebug backtrace helm-info paredit helm-gtags pulse init-lsp
init-groovy groovy-mode init-elm init-gc init-coq init-ocaml ocamlformat
init-yaml yaml-mode init-rust racer rust-mode init-js init-web-n-php
ac-php ac-php-core xcscope f php-mode mode-local speedbar sb-image
ezimage dframe cc-langs cc-mode-expansions cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs php-face
php php-project web-mode-expansions web-mode disp-table init-typescript
init-haskell init-swift init-golang init-python py-autopep8
highlight-indentation company-capf company pcase help-fns radix-tree
elpy elpy-rpc pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io
esh-arg esh-module esh-groups esh-util elpy-shell elpy-profile
elpy-django s elpy-refactor python-el-fgallina-expansions python
tramp-sh tramp tramp-loaddefs trampver tramp-integration tramp-compat
parse-time iso8601 ls-lisp ido grep files-x init-markdown markdown-mode
color init-org init-dash init-tex tex-mik tex init-helm helm-swoop
helm-mode helm-files helm-buffers helm-occur helm-tags helm-locate
helm-grep helm-regexp helm-utils helm-help helm-types helm-config
helm-easymenu helm helm-source eieio-compat helm-multi-match helm-lib
init-shell init-lisp slime etags fileloop generator xref project
arc-mode archive-mode noutline outline pp hyperspec init-treemacs
cus-edit cus-start cus-load wid-edit ace-window avy magit-submodule
magit-obsolete magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff
smerge-mode diff diff-mode magit-core magit-autorevert autorevert
filenotify magit-margin magit-transient magit-process magit-mode
git-commit transient magit-git magit-section magit-utils crm log-edit
message rmc puny dired dired-loaddefs format-spec rfc822 mml mml-sec epa
derived epg epg-config gnus-util rmail rmail-loaddefs
text-property-search time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log with-editor
async-bytecomp async shell pcomplete server google-this url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util mailcap delsel expand-region text-mode-expansions
er-basic-expansions expand-region-core expand-region-custom
highlight-symbol multiple-cursors mc-hide-unmatched-lines-mode
mc-separate-operations rectangular-region-mode mc-mark-pop mc-mark-more
mc-cycle-cursors mc-edit-lines multiple-cursors-core rect cl-extra
yasnippet advice flymake-proc flymake compile comint ring warnings
thingatpt flycheck ansi-color find-func help-mode rx dash
auto-complete-config auto-complete edmacro kmacro popup use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core monokai-theme
paren display-line-numbers hl-line finder-inf tex-site proof-site
proof-autoloads slime-autoloads info package easymenu browse-url
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads kqueue cocoa ns
lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 545075 84351)
(symbols 48 42032 48)
(strings 32 181833 11452)
(string-bytes 1 5531802)
(vectors 16 66217)
(vector-slots 8 790875 81310)
(floats 8 296 87)
(intervals 56 412 423)
(buffers 1000 13))