GNU bug report logs - #44930
27.1; X protocol error: BadMatch (...) on protocol request 73

Previous Next

Package: emacs;

Reported by: Francesco Potortì <pot <at> gnu.org>

Date: Sat, 28 Nov 2020 19:37:01 UTC

Severity: normal

Found in version 27.1

Done: Alan Third <alan <at> idiocy.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 44930 in the body.
You can then email your comments to 44930 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#44930; Package emacs. (Sat, 28 Nov 2020 19:37:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Francesco Potortì <pot <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 28 Nov 2020 19:37:01 GMT) Full text and rfc822 format available.

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

From: Francesco Potortì <pot <at> gnu.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.1; X protocol error: BadMatch (...) on protocol request 73
Date: Sat, 28 Nov 2020 20:36:06 +0100
This looks like a regression since it has happened only since using
Emacs 27 (I had Emacs 26 running since a long time).

From the local machine, I run ssh on the remote one.  I launch Screen
and then I execute Emacs in text mode.  I use Screen remotely via ssh.
From the text frame I create an X frame running on a remote Xpra server
(which is a sort of Screen running on X), and I use the Xpra client
locally.

So I have an Emacs text frame on Screen and an X frame on a local Xpra
client.

I use (setq browse-url-browser-function 'w3m-browse-url)

Sometimes, when I use browse-url on an http URL, the X frame dies, but the
text frame stays alive and I can relaunch an X frame from there without
problems.  When the X frame dies, it leaves this error message:

X protocol error: BadMatch (invalid parameter attributes) on protocol request 73

Apparently this happens only when w3m does not respond immediately and
the *w3m* buffer displays a message asking to wait, but it only happened
few times until now, so I am not sure.


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

Recent messages:
Expunging deleted messages...done
Saving file /home/pot/Mail/RMAIL...
Wrote /home/pot/Mail/RMAIL
Making completion list...
Quit
Saving file /home/pot/diary...
Preparing diary...done
Wrote /home/pot/diary
user-error: No undo information in this buffer
Report a bug for a [P]ackage or [F]ile: (default P) 
Quit
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
 -fdebug-prefix-map=/build/emacs-6jKC2B/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_NUMERIC: C
  value of $LANG: C.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Text

Minor modes in effect:
  filladapt-mode: t
  desktop-save-mode: t
  epa-global-mail-mode: t
  shell-dirtrack-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

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/csv-mode-1.12/csv-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.12/csv-mode-pkg
/usr/share/emacs/site-lisp/elpa/csv-mode-1.12/csv-mode hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.12/csv-mode
/usr/share/emacs/site-lisp/elpa/csv-mode-1.12/csv-mode-tests hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.12/csv-mode-tests
/usr/share/emacs/site-lisp/elpa/csv-mode-1.12/csv-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.12/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.4/markdown-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.4/markdown-mode-autoloads
/usr/share/emacs/site-lisp/elpa/markdown-mode-2.4/markdown-mode hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.4/markdown-mode
/usr/share/emacs/site-lisp/elpa/markdown-mode-2.4/markdown-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.4/markdown-mode-pkg
~/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
~/elisp/rmailout hides /usr/share/emacs/27.1/lisp/mail/rmailout

Features:
(debian-bug ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help
ediff-init ediff-util smerge-mode compare-w rmail-spam-filter wdired
cal-move cal-x gnutls network-stream url-cache dabbrev rmailsort unrmail
undigest shadow emacsbug two-column iso-transl edmacro latexenc grep
arc-mode archive-mode url-http url-auth url-gw nsm w3m-filter w3m-cookie
markdown-mode rx noutline outline macros kmacro rmailedit debug
backtrace eieio-opt speedbar sb-image ezimage dframe find-func w3m-form
w3m-bookmark w3m-tabmenu w3m-session w3m doc-view jka-compr image-mode
exif timezone w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl
w3m-favicon w3m-image w3m-proc w3m-util pp cl-print help-fns radix-tree
mailalias rmailout rect rmailkwd shr-color cus-edit cus-start cus-load
diff-mode easy-mmode diff cl-extra time-stamp dired-aux misearch
multi-isearch server conf-mode sh-script executable vc-dispatcher vc-svn
octave skeleton texinfo pcase tex-mode compile generic bibtex
vc-filewise vc-rcs mhtml-mode css-mode smie eww mm-url gnus nnheader
wid-edit url-queue url url-proxy url-privacy url-expand url-methods
url-history mailcap shr url-cookie url-domsuf url-util svg xml color 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 qp rmailmm message rmc puny
rfc822 mml mml-sec gnus-util text-property-search mm-decode mm-bodies
mm-encode mailabbrev gmm-utils mailheader mail-parse rfc2231 desktop
frameset cal-julian solar cal-dst pot warnings rmailsum rmail
rmail-loaddefs sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mime-compose 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 switch-to-shell
openwith hi-lock anything-config anything advice woman man cl locate
xt-mouse ffap thingatpt scroll-in-place filladapt ansi-color time quail
help-mode dired-x dired dired-loaddefs generic-x 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 705358 95183)
 (symbols 48 31974 0)
 (strings 32 148973 24999)
 (string-bytes 1 4675891)
 (vectors 16 53037)
 (vector-slots 8 1480670 149866)
 (floats 8 759 779)
 (intervals 56 52765 4485)
 (buffers 1000 123))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Mon, 30 Nov 2020 21:47:02 GMT) Full text and rfc822 format available.

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

From: Francesco Potortì <pot <at> gnu.org>
To: 44930 <at> debbugs.gnu.org
Subject: I can reproduce it
Date: Mon, 30 Nov 2020 22:46:56 +0100
In this moment I have a *w3m* buffer on a live Emacs.  If I switch to it
on a text frame, everything is well.  If I switch to it on an X display,
the frame dies (but Emacs survives).  The error is

X protocol error: BadMatch (invalid parameter attributes) on protocol request 73

until I don't kill the buffer, I can reproduce the error at will.  I
have no idea how to debug it.  If I am instructed, I can try until Emacs
is alive.

Xpra is apparently not relevant.  The same things happens on display :7
(where the Xpra server is running) and on display localhost:10.0

If I set debug-on-error this is what I read in the backtrace:

Debugger entered--Lisp error: (error "X protocol error: BadMatch (invalid parameter attributes) on protocol request 73")
  redisplay_internal\ \(C\ function\)()




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Tue, 01 Dec 2020 15:15:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Francesco Potortì <pot <at> gnu.org>
Cc: 44930 <at> debbugs.gnu.org
Subject: Re: bug#44930: I can reproduce it
Date: Tue, 01 Dec 2020 17:14:03 +0200
> From: Francesco Potortì <pot <at> gnu.org>
> Date: Mon, 30 Nov 2020 22:46:56 +0100
> 
> In this moment I have a *w3m* buffer on a live Emacs.  If I switch to it
> on a text frame, everything is well.  If I switch to it on an X display,
> the frame dies (but Emacs survives).  The error is
> 
> X protocol error: BadMatch (invalid parameter attributes) on protocol request 73
> 
> until I don't kill the buffer, I can reproduce the error at will.  I
> have no idea how to debug it.  If I am instructed, I can try until Emacs
> is alive.

etc/DEBUG has some instructions for debugging X protocol errors;
search for "If you encounter X protocol errors".

In addition to what that says, it would be beneficial to understand
what kind of X request is "request 73".




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Tue, 01 Dec 2020 17:21:02 GMT) Full text and rfc822 format available.

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

From: Francesco Potortì <pot <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 44930 <at> debbugs.gnu.org
Subject: Re: bug#44930: I can reproduce it
Date: Tue, 01 Dec 2020 18:19:54 +0100
>> In this moment I have a *w3m* buffer on a live Emacs.  If I switch to it
>> on a text frame, everything is well.  If I switch to it on an X display,
>> the frame dies (but Emacs survives).  The error is
>> 
>> X protocol error: BadMatch (invalid parameter attributes) on protocol request 73
>> 
>> until I don't kill the buffer, I can reproduce the error at will.  I
>> have no idea how to debug it.  If I am instructed, I can try until Emacs
>> is alive.
>
>etc/DEBUG has some instructions for debugging X protocol errors;
>search for "If you encounter X protocol errors".

Ok.  I fear I will not be able to do that quickly.  

>In addition to what that says, it would be beneficial to understand
>what kind of X request is "request 73".

According to http://www.rahul.net/kenton/xproto/xrequests.html 73 is the
X protocol GetImage call.

According to https://www.x.org/wiki/guide/concepts/#index2h3, this is seldom
used, for example for making screenshots or for redrawing.  The second
usage could explain why it happens when I switch buffer and why the
debugger points to the internal C function redisplay_internal()

The XGetImage function is called twice from gtkutil.c and thrice from
image.c, so one of these is apparently failing.

According to
https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:GetImage  
the call may return a Match error when the pixmap or window to be
returned do not satisfy certain geometric criteria.

This is strange, because the error happens only when I switch to a
specific buffer, which makes me think that it depends on the buffer
contents.  Is there a way to save the buffer contents including
attributes (fonts, overlays and other things that I do not know about)
to disk, so that I can easily recreate a buffer with the strange
property of causing this error?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Tue, 01 Dec 2020 18:30:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Francesco Potortì <pot <at> gnu.org>
Cc: 44930 <at> debbugs.gnu.org
Subject: Re: bug#44930: I can reproduce it
Date: Tue, 01 Dec 2020 20:29:00 +0200
> From: Francesco Potortì <pot <at> gnu.org>
> Date: Tue, 01 Dec 2020 18:19:54 +0100
> Cc: 44930 <at> debbugs.gnu.org
> 
> This is strange, because the error happens only when I switch to a
> specific buffer, which makes me think that it depends on the buffer
> contents.  Is there a way to save the buffer contents including
> attributes (fonts, overlays and other things that I do not know about)
> to disk, so that I can easily recreate a buffer with the strange
> property of causing this error?

I know of no such way except writing Lisp that will recreate the
contents.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Wed, 02 Dec 2020 04:29:01 GMT) Full text and rfc822 format available.

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

From: Richard Stallman <rms <at> gnu.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: pot <at> gnu.org, 44930 <at> debbugs.gnu.org
Subject: Re: bug#44930: I can reproduce it
Date: Tue, 01 Dec 2020 23:28:15 -0500
[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > This is strange, because the error happens only when I switch to a
  > > specific buffer, which makes me think that it depends on the buffer
  > > contents.  Is there a way to save the buffer contents including
  > > attributes (fonts, overlays and other things that I do not know about)
  > > to disk, so that I can easily recreate a buffer with the strange
  > > property of causing this error?

  > I know of no such way except writing Lisp that will recreate the
  > contents.

It should be possible to write Lisp code to do that.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Sat, 05 Dec 2020 18:34:02 GMT) Full text and rfc822 format available.

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

From: Francesco Potortì <pot <at> potorti.it>
To: Francesco Potortì <pot <at> gnu.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 44930 <at> debbugs.gnu.org
Subject: Re: bug#44930: I can reproduce it
Date: Sat, 05 Dec 2020 17:08:15 +0100
>>> In this moment I have a *w3m* buffer on a live Emacs.  If I switch to it
>>> on a text frame, everything is well.  If I switch to it on an X display,
>>> the frame dies (but Emacs survives).  The error is
>>> 
>>> X protocol error: BadMatch (invalid parameter attributes) on protocol request 73

I managed to find the time to compile emacs with symbols.

The previous instance of Emacs crashed, so apparently there is a serious
problem somewhere.

On the plus side, now apparently every instance of a *w3m* buffer
exhibits the problem, which is now easy to reproduce for me.

The error is:
  redisplay: X protocol error: BadMatch (invalid parameter attributes) on protocol request 73
which points to an XGetImage call where the pixmap or window to be
returned does not satisfy certain geometric criteria, according to
  https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:GetImage  

Setting debug-on-error to t tells me that this happens inside
redisplay_internal().

I evaluated (x-synchronize t) and then switched to the *w3b* buffer.

Here is the backtrace.  If you help me I can try and continue debugging.

Current directory is ~/gnu/emacs-27.1+1/src/
GNU gdb (Debian 10.1-1+b1) 10.1
...
Reading symbols from ../debian/emacs-lucid/usr/bin/emacs-lucid...
Attaching to program: /home/pot/gnu/emacs-27.1+1/debian/emacs-lucid/usr/bin/emacs-lucid, process 95547
[New LWP 95548]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007fc663663926 in __pselect (nfds=9, readfds=0x7ffcc787bb40, writefds=0x7ffcc787bbc0, exceptfds=0x0, timeout=<optimized out>, sigmask=0x7ffcc787b950) at ../sysdeps/unix/sysv/linux/pselect.c:48
48	../sysdeps/unix/sysv/linux/pselect.c: No such file or directory.
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
DISPLAY = localhost:10.0
TERM = dumb
Breakpoint 2 at 0x5596a186fa29: file ./debian/build-src/src/xterm.c, line 10131.
(gdb) 
(gdb) c
Continuing.

Thread 1 "emacs" hit Breakpoint 2, x_error_quitter (display=0x5596a89b0990, event=0x7ffcc7879e90) at ./debian/build-src/src/xterm.c:10131
10131	{
(gdb) bt
#0  x_error_quitter (display=0x5596a89b0990, event=0x7ffcc7879e90) at ./debian/build-src/src/xterm.c:10131
#1  0x00005596a186fae1 in x_error_handler (display=<optimized out>, event=<optimized out>) at ./debian/build-src/src/xterm.c:10119
#2  0x00007fc6655fd36b in _XError () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#3  0x00007fc6655fa197 in  () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#4  0x00007fc6655fb373 in _XReply () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007fc6655e033a in XGetImage () at /usr/lib/x86_64-linux-gnu/libX11.so.6
#6  0x00005596a19c3788 in image_get_x_image (f=<optimized out>, img=img <at> entry=0x5596a57dccd0, mask_p=mask_p <at> entry=false) at ./debian/build-src/src/image.c:2934
#7  0x00005596a19c938e in image_background (img=0x5596a57dccd0, f=<optimized out>, pimg=pimg <at> entry=0x0) at ./debian/build-src/src/image.c:1376
#8  0x00005596a1870fed in x_setup_relief_colors (s=s <at> entry=0x7ffcc787a4b0) at ./debian/build-src/src/xterm.c:2735
#9  0x00005596a18733eb in x_draw_glyph_string_box (s=s <at> entry=0x7ffcc787a4b0) at ./debian/build-src/src/xterm.c:3025
#10 0x00005596a1873d14 in x_draw_glyph_string (s=0x7ffcc787a4b0) at ./debian/build-src/src/xterm.c:3966
#11 0x00005596a17e7bc4 in draw_glyphs (w=w <at> entry=0x5596a345c320, x=506, row=row <at> entry=0x5596a5fc8980, area=area <at> entry=TEXT_AREA, start=<optimized out>, start <at> entry=0, end=<optimized out>, end <at> entry=14, hl=<optimized out>, overlaps=<optimized out>) at ./debian/build-src/src/xdisp.c:28675
#12 0x00005596a17ea3c2 in gui_write_glyphs (w=0x5596a345c320, updated_row=0x5596a5fc8980, start=<optimized out>, updated_area=TEXT_AREA, len=14) at ./debian/build-src/src/xdisp.c:30702
#13 0x00005596a1790ca7 in update_text_area (w=w <at> entry=0x5596a345c320, updated_row=updated_row <at> entry=0x5596a5fc8980, vpos=vpos <at> entry=0) at ./debian/build-src/src/dispnew.c:3843
#14 0x00005596a17917a6 in update_window_line (w=w <at> entry=0x5596a345c320, vpos=vpos <at> entry=0, mouse_face_overwritten_p=mouse_face_overwritten_p <at> entry=0x7ffcc787b277) at ./debian/build-src/src/dispnew.c:4086
#15 0x00005596a1794231 in update_window (w=w <at> entry=0x5596a345c320, force_p=force_p <at> entry=true) at ./debian/build-src/src/dispnew.c:3612
#16 0x00005596a1794708 in update_frame (f=f <at> entry=0x5596a3767da0, force_p=true, force_p <at> entry=false, inhibit_hairy_id_p=inhibit_hairy_id_p <at> entry=false) at ./debian/build-src/src/dispnew.c:3214
#17 0x00005596a17e21ad in redisplay_internal () at ./debian/build-src/src/xdisp.c:15842
#18 0x00005596a17e364a in redisplay () at ./debian/build-src/src/xdisp.c:14989
Python Exception <class 'gdb.error'> value has been optimized out: 
#19 0x00005596a18ab1c4 in read_char (commandflag=1, map=, map <at> entry=XIL(0x5596a4254f73), prev_event=XIL(0x7ffcc787caa0), used_mouse_menu=used_mouse_menu <at> entry=0x7ffcc787c9cb, end_time=end_time <at> entry=0x0) at ./debian/build-src/src/keyboard.c:2493
#20 0x00005596a18ada5f in read_key_sequence (keybuf=keybuf <at> entry=0x7ffcc787caa0, prompt=XIL(0x15), dont_downcase_last=dont_downcase_last <at> entry=false, can_return_switch_frame=can_return_switch_frame <at> entry=true, fix_current_buffer=fix_current_buffer <at> entry=true, prevent_redisplay=prevent_redisplay <at> entry=false) at ./debian/build-src/src/keyboard.c:9553
#21 0x00005596a18ae5ce in command_loop_1 () at ./debian/build-src/src/keyboard.c:1350
Python Exception <class 'gdb.error'> value has been optimized out: 
#22 0x00005596a193096c in internal_condition_case (bfun=bfun <at> entry=0x5596a18ae34a <command_loop_1>, handlers=, hfun=hfun <at> entry=0x5596a18a26a9 <cmd_error>) at ./debian/build-src/src/eval.c:1356
Python Exception <class 'gdb.error'> value has been optimized out: 
#23 0x00005596a189c485 in command_loop_2 (ignore=, ignore <at> entry=XIL(0)) at ./debian/build-src/src/keyboard.c:1091
Python Exception <class 'gdb.error'> value has been optimized out: 
Python Exception <class 'gdb.error'> value has been optimized out: 
#24 0x00005596a19308b0 in internal_catch (tag=, func=func <at> entry=0x5596a189c461 <command_loop_2>, arg=, arg <at> entry=XIL(0)) at ./debian/build-src/src/eval.c:1117
#25 0x00005596a189c435 in command_loop () at ./debian/build-src/src/keyboard.c:1070
#26 0x00005596a18a22df in recursive_edit_1 () at ./debian/build-src/src/keyboard.c:714
#27 0x00005596a18a25cd in Frecursive_edit () at ./debian/build-src/src/keyboard.c:786
#28 0x00005596a189b050 in main (argc=3, argv=<optimized out>) at ./debian/build-src/src/emacs.c:2062

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)
(gdb) c
Continuing.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Sat, 05 Dec 2020 19:45:01 GMT) Full text and rfc822 format available.

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

From: Alan Third <alan <at> idiocy.org>
To: Francesco Potortì <pot <at> potorti.it>
Cc: Francesco Potortì <pot <at> gnu.org>, 44930 <at> debbugs.gnu.org
Subject: Re: bug#44930: I can reproduce it
Date: Sat, 5 Dec 2020 19:44:13 +0000
[Message part 1 (text/plain, inline)]
On Sat, Dec 05, 2020 at 05:08:15PM +0100, Francesco Potortì wrote:
> >>> In this moment I have a *w3m* buffer on a live Emacs.  If I switch to it
> >>> on a text frame, everything is well.  If I switch to it on an X display,
> >>> the frame dies (but Emacs survives).  The error is
> >>> 
> >>> X protocol error: BadMatch (invalid parameter attributes) on protocol request 73
> 
> I managed to find the time to compile emacs with symbols.
> 
> The previous instance of Emacs crashed, so apparently there is a serious
> problem somewhere.
> 
> On the plus side, now apparently every instance of a *w3m* buffer
> exhibits the problem, which is now easy to reproduce for me.
> 
> The error is:
>   redisplay: X protocol error: BadMatch (invalid parameter attributes) on protocol request 73
> which points to an XGetImage call where the pixmap or window to be
> returned does not satisfy certain geometric criteria, according to
>   https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:GetImage  
> 
> Setting debug-on-error to t tells me that this happens inside
> redisplay_internal().
> 
> I evaluated (x-synchronize t) and then switched to the *w3b* buffer.
> 
> Here is the backtrace.  If you help me I can try and continue debugging.
<snip>
> #5  0x00007fc6655e033a in XGetImage () at /usr/lib/x86_64-linux-gnu/libX11.so.6
> #6  0x00005596a19c3788 in image_get_x_image (f=<optimized out>, img=img <at> entry=0x5596a57dccd0, mask_p=mask_p <at> entry=false) at ./debian/build-src/src/image.c:2934
> #7  0x00005596a19c938e in image_background (img=0x5596a57dccd0, f=<optimized out>, pimg=pimg <at> entry=0x0) at ./debian/build-src/src/image.c:1376

Hmm, my suspicion here is that we're calling XGetImage with dimensions
that don't match the pixmap since we no longer store the dimensions of
the original image.

It hadn't occurred to me that we'd ever pull the image BACK from the X
server.

Can you try with the attached patch, please?
-- 
Alan Third
[0001-Fix-crash-when-using-XRender-and-restoring-image-fro.patch (text/plain, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Sat, 05 Dec 2020 22:45:02 GMT) Full text and rfc822 format available.

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

From: Francesco Potortì <pot <at> gnu.org>
To: Alan Third <alan <at> idiocy.org>
Cc: 44930 <at> debbugs.gnu.org
Subject: Re: bug#44930: I can reproduce it
Date: Sat, 05 Dec 2020 23:44:34 +0100
>Can you try with the attached patch, please?

I did.  It does not error any more with my previous bug reproducing
recipe.  If it does not happen in a week of normal usage I would say it
has gone away.

Thanks




Reply sent to Alan Third <alan <at> idiocy.org>:
You have taken responsibility. (Sat, 12 Dec 2020 10:45:01 GMT) Full text and rfc822 format available.

Notification sent to Francesco Potortì <pot <at> gnu.org>:
bug acknowledged by developer. (Sat, 12 Dec 2020 10:45:02 GMT) Full text and rfc822 format available.

Message #34 received at 44930-done <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: Francesco Potortì <pot <at> gnu.org>
Cc: 44930-done <at> debbugs.gnu.org
Subject: Re: bug#44930: I can reproduce it
Date: Sat, 12 Dec 2020 10:43:59 +0000
On Sat, Dec 05, 2020 at 11:44:34PM +0100, Francesco Potortì wrote:
> >Can you try with the attached patch, please?
> 
> I did.  It does not error any more with my previous bug reproducing
> recipe.  If it does not happen in a week of normal usage I would say it
> has gone away.

I've pushed this to the emacs-27 branch.

Thanks!
-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#44930; Package emacs. (Sat, 12 Dec 2020 13:10:02 GMT) Full text and rfc822 format available.

Message #37 received at 44930-done <at> debbugs.gnu.org (full text, mbox):

From: Francesco Potortì <pot <at> gnu.org>
To: Alan Third <alan <at> idiocy.org>
Cc: 44930-done <at> debbugs.gnu.org, Alan Third <alan <at> idiocy.org>
Subject: Re: bug#44930: I can reproduce it
Date: Sat, 12 Dec 2020 14:09:56 +0100
>On Sat, Dec 05, 2020 at 11:44:34PM +0100, Francesco Potortì wrote:
>> >Can you try with the attached patch, please?
>> 
>> I did.  It does not error any more with my previous bug reproducing
>> recipe.  If it does not happen in a week of normal usage I would say it
>> has gone away.
>
>I've pushed this to the emacs-27 branch.

I confirm that I have not observed the problem any more in conctinuous
emacs usage till now.

Thank you




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 10 Jan 2021 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 104 days ago.

Previous Next


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