Subject: bug#59265: 27.1; emacs apparently redraws the entire X window for every update

From: Francesco Potortì <[email-masked]>
Date: Mon, 14 Nov 2022 17:39:20 +0100

This bug report is vague, because I don't know the details yet, but I should be able to produce them later.

When using a remote window using Xpra (which is more or less equivalent to Screen for X, see xpra.org) the amount of information sent by Emacs is huge, apparently redrawing the entire window at every keystroke.

I discovered this while reporting an Xpra bug and Xpra's author commented on this, see https://github.com/Xpra-org/xpra/issues/3660

While I work with him to solving the bug, I will try to get more info on the matter, assuming this is not a known issue.  If the problem is real, that makes Emacs resource hungry when run on remote X servers.

In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2021-11-27, modified by Debian built on x86-csail-01
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Debian GNU/Linux bookworm/sid

Recent messages:
Contacting host: www.overleaf.com:443
Added to /home/pot/Mail/lavoro/pubblicazioni/evaal21-22
git clone https://git.overleaf.com/6345492996536c2efb63ba9c: finished.
RelSymLink: 1 of 1
RelSymLink: 1 file done
Auto-saving...done
Auto-saving...done
Saving file /home/pot/.url/cookies...
Wrote /home/pot/.url/cookies
Auto-saving...done

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --enable-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --with-x=yes --with-x-toolkit=lucid
 --with-toolkit-scroll-bars --without-gsettings 'CFLAGS=-g -O2
 -ffile-prefix-map=/build/emacs-fQHadv/emacs-27.1+1=. -fstack-protector-strong -Wformat
 -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS
LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM
MODULES THREADS LIBSYSTEMD JSON PDUMPER LCMS2 GMP

Important settings:
  value of $LC_COLLATE: it_IT.UTF-8
  value of $LC_CTYPE: it_IT.UTF-8
  value of $LC_MONETARY: it_IT.UTF-8
  value of $LC_NUMERIC: C
  value of $LANG: C.UTF-8
  locale-coding-system: utf-8-unix

Major mode: LaTeX

Minor modes in effect:
  filladapt-mode: t
  desktop-save-mode: t
  epa-global-mail-mode: t
  shell-dirtrack-mode: t
  visual-fill-column-mode: t
  openwith-mode: t
  xterm-mouse-mode: t
  display-time-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-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
  column-number-mode: t
  line-number-mode: t
  visual-line-mode: t

Load-path shadows:
~/elisp/bhl hides /usr/share/emacs/site-lisp/bhl
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-mode-20141231/debian-autoloads
/usr/share/emacs/site-lisp/elpa/cmake-mode-3.24.3/cmake-mode hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-3.24.3/cmake-mode
/usr/share/emacs/site-lisp/elpa/cmake-mode-3.24.3/cmake-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-3.24.3/cmake-mode-pkg
/usr/share/emacs/site-lisp/elpa/cmake-mode-3.24.3/cmake-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-3.24.3/cmake-mode-autoloads
/usr/share/emacs/site-lisp/elpa/csv-mode-1.21/csv-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.21/csv-mode-pkg
/usr/share/emacs/site-lisp/elpa/csv-mode-1.21/csv-mode hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.21/csv-mode
/usr/share/emacs/site-lisp/elpa/csv-mode-1.21/csv-mode-tests hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.21/csv-mode-tests
/usr/share/emacs/site-lisp/elpa/csv-mode-1.21/csv-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.21/csv-mode-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el
/usr/share/emacs/site-lisp/elpa/debian-el-37/gnus-BTS hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/gnus-BTS
/usr/share/emacs/site-lisp/elpa/debian-el-37/preseed hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/preseed
/usr/share/emacs/site-lisp/elpa/debian-el-37/deb-view hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/deb-view
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-utils hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-utils
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-bug hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-bug
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-pkg
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-sources
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-autoloads
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/dictionary hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/dictionary
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/link hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/link
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/dictionary-pkg hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/dictionary-pkg
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/dictionary-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/dictionary-autoloads
/usr/share/emacs/site-lisp/elpa/dictionary-1.10/connection hides /usr/share/emacs/site-lisp/elpa-src/dictionary-1.10/connection
/usr/share/emacs/site-lisp/elpa/gnuplot-mode-20141231/gnuplot hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-mode-20141231/gnuplot
/usr/share/emacs/site-lisp/elpa/gnuplot-mode-20141231/gnuplot-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-mode-20141231/gnuplot-mode-pkg
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-mode-20141231/debian-autoloads
/usr/share/emacs/site-lisp/elpa/gnuplot-mode-20141231/gnuplot-context hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-mode-20141231/gnuplot-context
/usr/share/emacs/site-lisp/elpa/gnuplot-mode-20141231/gnuplot-gui hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-mode-20141231/gnuplot-gui
/usr/share/emacs/site-lisp/elpa/gnuplot-mode-20141231/gnuplot-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-mode-20141231/gnuplot-mode-autoloads
/usr/share/emacs/site-lisp/elpa/markdown-mode-2.5/markdown-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.5/markdown-mode-autoloads
/usr/share/emacs/site-lisp/elpa/markdown-mode-2.5/markdown-mode hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.5/markdown-mode
/usr/share/emacs/site-lisp/elpa/markdown-mode-2.5/markdown-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.5/markdown-mode-pkg
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php-mode-autoloads
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php-mode-pkg
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php-local-manual hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php-local-manual
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php-mode-debug hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php-mode-debug
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php-align hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php-align
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php-face hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php-face
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php-project hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php-project
/usr/share/emacs/site-lisp/elpa/php-mode-1.24.1/php-mode hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.24.1/php-mode
~/elisp/bibtex hides /usr/share/emacs/27.1/lisp/textmodes/bibtex
~/elisp/octave hides /usr/share/emacs/27.1/lisp/progmodes/octave
/usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/27.1/lisp/net/sasl

Features:
(shadow emacsbug latexenc rmailsort sort cal-move cal-x face-remap mail-extr reporter debian-bug
eieio-opt speedbar sb-image ezimage dframe find-func help-fns radix-tree rect ispell iso-transl
dabbrev rfc2368 smtpmail pp timezone rmailkwd doc-view image-mode exif reveal tramp-cmds rfc2104
tramp-cache shr-color wdired rmailout macros kmacro rmailedit mailalias warnings gnutls
network-stream url-http url-gw nsm url-cache url-auth time-stamp tabify misearch multi-isearch
cl-extra server qp rmailmm message rmc rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mailabbrev gmm-utils mailheader mail-parse rfc2231 vc-dir ewoc vc vc-git diff-mode sh-script
executable conf-mode mhtml-mode css-mode eww mm-url gnus nnheader gnus-util wid-edit url-queue
url url-proxy url-privacy url-expand url-methods url-history mailcap shr text-property-search
url-cookie url-domsuf url-util puny svg xml js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs sgml-mode dom bibtex make-mode vc-svn tex-mode
compile vc-dispatcher python tramp-sh generic markdown-mode rx color noutline outline
vc-filewise vc-rcs octave skeleton texinfo smie cal-julian solar cal-dst desktop frameset pot
rmailsum rmail rmail-loaddefs ffap thingatpt ange-ftp pcase sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr epa-mail mail-utils epa derived epg epg-config view mule-util holidays
hol-loaddefs appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell pcomplete comint ring parse-time iso8601
time-date ls-lisp format-spec bhl visual-fill-column dired-aux openwith easy-mmode
switch-to-shell hi-lock anything-config anything advice woman man cl locate xt-mouse
scroll-in-place filladapt ansi-color time jka-compr quail help-mode dired-x dired dired-loaddefs
generic-x shell-apt disp-table finder-inf w3m-load info debian-el 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/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 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 dbusbind inotify lcms2 dynamic-setting
font-render-setting x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 1330094 282818)
 (symbols 48 50380 21)
 (strings 32 254958 16106)
 (string-bytes 1 19808063)
 (vectors 16 59721)
 (vector-slots 8 2079309 228712)
 (floats 8 1042 3807)
 (intervals 56 282893 975)
 (buffers 1000 193))