Bug 289081
| Summary: | REGRESSION(2.42): GNU Emacs with gtk and xwidgets crashes with X protocol error: GLXBadWindow on protocol request | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | bitstreamout |
| Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | bugs-noreply, mcatanzaro |
| Priority: | P2 | ||
| Version: | Other | ||
| Hardware: | PC | ||
| OS: | Linux | ||
bitstreamout
Just tested what described in emacs-30.1/etc/PROBLEMS with emacs 29.4 (gtk port linked with libwebkit2gtk-4_1-0-2.46.4-2.1.x86_64) and indeed it crashes.
From macs-30.1/etc/PROBLEMS
```
** Emacs built with xwidgets aborts when displaying WebKit xwidgets
This happens, for example, when 'M-x xwidget-webkit-browse-url'
prompts for a URL and you type the URL at the prompt.
The error message might look like this:
X protocol error: GLXBadWindow on protocol request 151
Serial no: 4286
Failing resource ID (if any): 0x3c001c5
Minor code: 32
This happens because starting from version 2.42.1, the WebKitGTK
developers discontinued support for off-screen windows, by presuming
that every window holding a WebView widget is an X server window
eligible for an OpenGL context. Emacs requires placing these widgets
within offscreen windows managed by GTK, for each xwidget might be
displayed in multiple distinct windows, and its contents must be
captured and reproduced within all of them if that be the case.
To put this another way, WebKitGTK doesn't support displaying a single
widget more than once anymore.
A possible workaround is to make sure xwidgets are not shown in more
than one window.
```
just wonder if this had ever been reported ... beside this I'm not an GNU Emacs developer only a package maintainer for GNU emacs
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
bitstreamout
https://bugzilla.opensuse.org/show_bug.cgi?id=1237518
Michael Catanzaro
I think the next step here is to identify the change that introduced the regression. The title of your bug report says 2.41.92 is the first bad version, but your comment says 2.42.1. Which is it? Let's narrow this down as precisely as possible. Please test at least 2.41.91 and 2.42.0 to figure out for certain what is the last good version.
Would you or somebody else be willing to bisect to find the exact change that broke Emacs? That would help a lot.
> just wonder if this had ever been reported ... beside this I'm not an GNU Emacs developer only a package maintainer for GNU emacs
I did a quick search and failed to find any duplicate bug reports, so I assume you're the first person to report this.
bitstreamout
(In reply to Michael Catanzaro from comment #2)
> I think the next step here is to identify the change that introduced the
> regression. The title of your bug report says 2.41.92 is the first bad
> version, but your comment says 2.42.1. Which is it? Let's narrow this down
> as precisely as possible. Please test at least 2.41.91 and 2.42.0 to figure
> out for certain what is the last good version.
>
> Would you or somebody else be willing to bisect to find the exact change
> that broke Emacs? That would help a lot.
>
> > just wonder if this had ever been reported ... beside this I'm not an GNU Emacs developer only a package maintainer for GNU emacs
>
> I did a quick search and failed to find any duplicate bug reports, so I
> assume you're the first person to report this.
This is what I can show from emacs-30.1/configure.ac
```
if test "$with_xwidgets" != "no"; then
if test "$USE_GTK_TOOLKIT" = "GTK3" && test "$window_system" != "none"; then
WEBKIT_REQUIRED=2.12
WEBKIT_BROKEN=2.41.92
WEBKIT_MODULES="webkit2gtk-4.1 >= $WEBKIT_REQUIRED webkit2gtk-4.1 < $WEBKIT_BROKEN"
EMACS_CHECK_MODULES([WEBKIT], [$WEBKIT_MODULES])
if test "$HAVE_WEBKIT" = "no"; then
WEBKIT_MODULES="webkit2gtk-4.0 >= $WEBKIT_REQUIRED webkit2gtk-4.0 < $WEBKIT_BROKEN"
EMACS_CHECK_MODULES([WEBKIT], [$WEBKIT_MODULES])
fi
[...]
```
and here is the discussion of the GNU Emacs developers
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66068
this also includes some backtraces and the tested versions of webkit2gtk
Michael Catanzaro
It's not clear that anybody tested 2.41.91 though, so looks like the regression could be anywhere between 2.40 and 2.41.92.