Closed Bug 1730991 Opened 3 years ago Closed 3 years ago

GPU process + KDE&XFCE with disabled compositor + EGL or GLX on proprietary Nvidia: Crash in [@ handle_response | _XEventsQueued] when activating autoscroll or when opening <select> dropdown

Categories

(Core :: Widget: Gtk, defect)

x86_64
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1750017
Tracking Status
firefox94 --- disabled

People

(Reporter: jan, Unassigned)

References

(Blocks 2 open bugs)

Details

(Keywords: crash, nightly-community)

Crash Data

Ubuntu 21.04, Nvidia GTX 1060, driver 470,

  • MOZ_X11_EGL (bug 1695933)
  • manually enabled GPU process

I could reproduce bug 1719003 with xfce (xubuntu-desktop) when disabling compositing (Applications > Settings > Window manager tweaks > Compositing). I assume the fat black border is due to browser.tabs.drawInTitlebar=true. Before disabling compositing, it was fine.
Seconds later Nightly became shortly black (=GPU process crash).

My guess to this crash: Nightly was apparently using XShape, then compositing became disabled, then Nightly became confused.

Another Nightly (mozregression launch) is running behind with webgl aquarium with browser.tabs.drawInTitlebarl=false.

Maybe Fission related. (DOMFissionEnabled=1)

Crash report: https://crash-stats.mozilla.org/report/index/a03a9d8b-c133-4d6e-8f9c-51d540210915

Reason: SIGTRAP

Top 10 frames of crashing thread:

0 libglib-2.0.so.0 g_log_writer_default 
1 libglib-2.0.so.0 g_log_structured_array 
2 libglib-2.0.so.0 g_log_structured_standard glib/gmessages.c:2021
3 libgdk-3.so.0 gdk_x_error.lto_priv.0 gdk/x11/gdkmain-x11.c:269
4 libX11.so.6 _XError /build/libx11-TmCwH3/libx11-1.7.0/src/XlibInt.c:1503
5 libX11.so.6 handle_error /build/libx11-TmCwH3/libx11-1.7.0/src/xcb_io.c:207
6 libX11.so.6 handle_response /build/libx11-TmCwH3/libx11-1.7.0/src/xcb_io.c:394
7 libX11.so.6 _XEventsQueued /build/libx11-TmCwH3/libx11-1.7.0/src/xcb_io.c:414
8 libX11.so.6 XPending /build/libx11-TmCwH3/libx11-1.7.0/src/Pending.c:55
9 libgdk-3.so.0 gdk_event_source_prepare gdk/x11/gdkeventsource.c:287

widget.titlebar-x11-use-shape-mask is false and this comment says it's not used unless manually enabled:
https://searchfox.org/mozilla-central/rev/196daa17009ea2aaad62458edf033201d2750d98/widget/gtk/nsWindow.cpp#5367

// Use X shape mask to draw round corners of Firefox titlebar.
// We don't use shape masks any more as we switched to ARGB visual
// by default and non-compositing screens use solid-csd decorations
// without round corners.
// Leave the shape mask code here as it can be used to draw round
// corners on EGL (https://gitlab.freedesktop.org/mesa/mesa/-/issues/149)
// or when custom titlebar theme is used.

Summary: Crash in [@ handle_response | _XEventsQueued] → Crash in [@ handle_response | _XEventsQueued] after disabling X11 Compositor while Firefox was running

bp-84dc443c-db1b-4dc4-9cf4-2ba030210916
And this occured when activating autoscroll. This is perfectly reproducible.

Summary: Crash in [@ handle_response | _XEventsQueued] after disabling X11 Compositor while Firefox was running → Crash in [@ handle_response | _XEventsQueued] after disabling X11 Compositor while Firefox was running or when activating autoscroll

It seems SHAPE is still used for autoscroll:

(/home/darkspirit/firefox/firefox-bin:32385): Gdk-ERROR **: 02:04:19.258: The program '/home/darkspirit/firefox/firefox-bin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 379 error_code 3 request_code 129 (SHAPE) minor_code 2)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)

Also occurs with GLX: bp-2607cdb9-ffc6-4ddb-8f11-56ff10210916

(/home/darkspirit/firefox/firefox-bin:32706): Gdk-ERROR **: 02:05:28.254: The program '/home/darkspirit/firefox/firefox-bin' received an X Window >System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 272 error_code 3 request_code 129 (SHAPE) minor_code 2)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)

bp-2eca75b1-5f51-497c-8018-dcf290210916 when opening the <select> dropdown on https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select.

firefox-bin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 260 error_code 3 request_code 129 (SHAPE) minor_code 2)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
[Parent 7958, IPC I/O Parent] WARNING: FileDescriptorSet destroyed with unconsumed descriptors: file /builds/worker/checkouts/gecko/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc:19
[Parent 7958, IPC I/O Parent] WARNING: FileDescriptorSet destroyed with unconsumed descriptors: file /builds/worker/checkouts/gecko/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc:19
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
[GFX1-]: Receive IPC close with reason=AbnormalShutdown
###!!! [Child][MessageChannel] Error: (msgtype=0x54001C,name=PGPU::Msg_ShutdownVR) Channel error: cannot send/recv
###!!! [Child][MessageChannel] Error: (msgtype=0xA70026,name=PWebRenderBridge::Msg_Shutdown) Channel error: cannot send/recv
###!!! [Child][MessageChannel] Error: (msgtype=0x930003,name=PTexture::Msg_Destroy) Channel error: cannot send/recv
###!!! [Child][MessageChannel] Error: (msgtype=0x930003,name=PTexture::Msg_Destroy) Channel error: cannot send/recv

Has STR: --- → yes
Summary: Crash in [@ handle_response | _XEventsQueued] after disabling X11 Compositor while Firefox was running or when activating autoscroll → GPU process + XFCE with disabled compositor + EGL or GLX: Crash in [@ handle_response | _XEventsQueued] when activating autoscroll or when opening <select> dropdown
Summary: GPU process + XFCE with disabled compositor + EGL or GLX: Crash in [@ handle_response | _XEventsQueued] when activating autoscroll or when opening <select> dropdown → GPU process + XFCE with disabled compositor + EGL or GLX on proprietary Nvidia: Crash in [@ handle_response | _XEventsQueued] when activating autoscroll or when opening <select> dropdown

Changing severity to S? because of <rationale>.
S3: non-default firefox and desktop config

Severity: S2 → S3

Nvidia driver 470, GTX 1060, EGL, GPU process, KDE with disabled compositor:
GPU process crash when closing uBlock origin (it does not have a black border):
EGL: bp-bedce065-ba70-4e5b-ac40-8bc4a0210916 (GLX: bp-2f7cb162-5f16-4916-a0e5-0fb260210916)

firefox-bin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 512 error_code 3 request_code 129 (SHAPE) minor_code 2)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)

bp-8127bcc1-0b7e-496a-974a-958870210916 when closing dropdown https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select.


KDE+XFCE: If compositing is disabled, but GPU process enabled, then context+main menu "show the last frame", not the current one. If you repeatedly hover two menu entries, always the other one is highlighted, not the one you are hovering.
It does not occur inside uBlock origin and pocket, although their panels do also have round borders and also no black borders.

Summary: GPU process + XFCE with disabled compositor + EGL or GLX on proprietary Nvidia: Crash in [@ handle_response | _XEventsQueued] when activating autoscroll or when opening <select> dropdown → GPU process + KDE&XFCE with disabled compositor + EGL or GLX on proprietary Nvidia: Crash in [@ handle_response | _XEventsQueued] when activating autoscroll or when opening <select> dropdown

Could this be fixed by completely removing xShape and telling the browser UI with this mechanism when border-radius and shadow are forbidden? (seen in bug 1509931 comment 9)
XShape removal could also fix performance problems (bug 1733094 comment 18,https://bugs.chromium.org/p/chromium/issues/detail?id=1198080).
If xShape is still used on KDE, it could explain why KDE X11 gets slightly less fps. (bug 1733094 comment 14).

Blocks: wr-nv-linux

Ubuntu 22.04, GTX 1060, driver 495.46
KDE with disabled compositor (Shift+Alt+F12)

tested:

  • open + close select dropdown
  • autoscroll on about:support
  • open + close pocket

bad is when GPU process crashes (shortly black window)

MOZ_X11_EGL=1 mozregression --find-fix --bad 2021-09-16 --good 2022-01-30 --pref gfx.webrender.all:true layers.gpu-process.force-enabled:true general.autoScroll:true -a https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select -a about:support -P stdout

14:13.24 INFO: First good revision: c0f80b6e8df243bd92628becaf28bb37dc9db71b
14:13.24 INFO: Last bad revision: cfefe8614cd78a6ecd54755a832e66d0d2cb7fbb
14:13.24 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=cfefe8614cd78a6ecd54755a832e66d0d2cb7fbb&tochange=c0f80b6e8df243bd92628becaf28bb37dc9db71b

c0f80b6e8df243bd92628becaf28bb37dc9db71b stransky — Bug 1750017 [Linux] Don't set shape mask to released drawable, r=lsalzman

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.