Subject: bug#35003: 27.0.50; SIGTERM in dconf worker

From: Michael Welsh Duggan <[email-masked]>
Date: Tue, 26 Mar 2019 10:39:29 -0400

I work on a system that runs for months that I reach though a system
that reboots regularly.  On the long-running system, I run emacs
--daemon, which I then connect to with emacsclient.  When the system
in between my box and the long-running box reboots, I just reconnect and
re-attach to my session.  But at some point that stopped working, as the
emacs daemon dies at some point during the involuntary detachment in the
dconf worker thread.  I finally managed to catch this in a gdb session
running in tmux running emacs with --fg-daemon.

Thread 3 "dconf worker" received signal SIGTERM, Terminated.
[Switching to Thread 0x7fffea131700 (LWP 42577)]
0x00007ffff454854b in raise () from /lib64/libpthread.so.0
(gdb) show args
Argument list to give program being debugged when it is started is "--fg-daemon"
.
(gdb) info thread
  Id   Target Id                                         Frame 
  1    Thread 0x7ffff7fca880 (LWP 42490) "emacs-27.0.50" 0x00007ffff38cdcd9 in p
select () from /lib64/libc.so.6
  2    Thread 0x7fffead4a700 (LWP 42492) "gmain"         0x00007ffff38cbe9d in p
oll () from /lib64/libc.so.6
* 3    Thread 0x7fffea131700 (LWP 42577) "dconf worker"  0x00007ffff454854b in r
aise () from /lib64/libpthread.so.0
  4    Thread 0x7fffe9930700 (LWP 42583) "gdbus"         0x00007ffff38cbe9d in p
oll () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff454854b in raise () at /lib64/libpthread.so.0
#1  0x00007ffff2da2dcc in ffi_call_unix64 () at /lib64/libffi.so.6
#2  0x00007ffff2da26f5 in ffi_call () at /lib64/libffi.so.6
#3  0x00007ffff5183675 in g_cclosure_marshal_generic_va ()
    at /lib64/libgobject-2.0.so.0
#4  0x00007ffff5182c07 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#5  0x00007ffff519c757 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#6  0x00007ffff519d3df in g_signal_emit () at /lib64/libgobject-2.0.so.0
#7  0x00007ffff547d075 in emit_closed_in_idle () at /lib64/libgio-2.0.so.0
#8  0x00007ffff4ea64e7 in g_idle_dispatch () at /lib64/libglib-2.0.so.0
#9  0x00007ffff4ea98f9 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#10 0x00007ffff4ea9c58 in g_main_context_iterate.isra ()
    at /lib64/libglib-2.0.so.0
#11 0x00007ffff4ea9d0c in g_main_context_iteration ()
    at /lib64/libglib-2.0.so.0
#12 0x00007fffea13948d in dconf_gdbus_worker_thread ()
    at /usr/lib64/gio/modules/libdconfsettings.so
#13 0x00007ffff4ed0900 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#14 0x00007ffff4540dd5 in start_thread () at /lib64/libpthread.so.0
#15 0x00007ffff38d6b3d in clone () at /lib64/libc.so.6

Unfortunately, xbacktrace doesn't seem to be working very well in this
state:

(gdb) xbacktrace
(gdb) thread 1
[Switching to thread 1 (Thread 0x7ffff7fca880 (LWP 42490))]
#0  0x00007ffff38cdcd9 in pselect () from /lib64/libc.so.6
(gdb) xbacktrace

Thread 1 "emacs-27.0.50" received signal SIGTERM, Terminated.
backtrace_p (pdl=0xd7acc0) at ../../src/src/eval.c:182
182     { return specpdl ? pdl >= specpdl : false; }
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on".
Evaluation of the expression containing the function
(backtrace_p) will be abandoned.
When the function is done executing, GDB will silently stop.

The information below was saved into a draft at the beginning of the
emacs session.

In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit)
 of 2019-03-21 built on pd2.mallab.cert.org
Repository revision: 1fc6afbdf1ce0f8b23780bd4d2630ed49f365013
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12001000
System Description: Red Hat Enterprise Linux Server 7.5 (Maipo)

Configured using:
 'configure --without-toolkit-scroll-bars --with-wide-int
 --prefix=/home/mwd/ --with-jpeg=no --with-gif=no --with-tiff=no
 --with-gnutls=no --without-gconf
 PKG_CONFIG_PATH=/opt/rh/devtoolset-8/root/usr/lib64/pkgconfig'

Configured features:
XAW3D XPM PNG SOUND GSETTINGS GLIB NOTIFY INOTIFY LIBSELINUX LIBXML2
FREETYPE XFT ZLIB LUCID X11 XDBE XIM THREADS PDUMPER GMP

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

Major mode: Lisp Interaction

Minor modes in effect:
  display-time-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t

Load-path shadows:
None found.

Features:
(shadow sort flyspell ispell mail-extr gnus-msg gnus-art mm-uu mml2015
mm-view mml-smime mailcap gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int
gnus-range gnus-win emacsbug sendmail elec-pair woman man view time
smime dig server python tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat ucs-normalize shell pcomplete
parse-time advice prolog smie align comint ansi-color ring whitespace
ps-print ps-print-loaddefs ps-def lpr picture message rmc puny
format-spec rfc822 mml mml-sec epa derived epg mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus
nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums
time-date mail-utils mm-util mail-prsvr wid-edit generic-x dired-x dired
dired-loaddefs cmake-mode thingatpt rx cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs edmacro
kmacro finder-inf mule-util info package easymenu epg-config
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/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 minibuffer 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 inotify dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty make-network-process emacs)

-- 
Michael Welsh Duggan
([email-masked])