Bug 2307728 - gtk4 4.15.5 breaks display change confirmation dialog on X11
Summary: gtk4 4.15.5 breaks display change confirmation dialog on X11
Keywords:
Status: POST
Alias: None
Product: Fedora
Classification: Fedora
Component: gtk4
Version: 41
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: GNOME SIG Unassigned
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: AcceptedFreezeException
Depends On:
Blocks: F41BetaFreezeException
TreeView+ depends on / blocked
 
Reported: 2024-08-24 17:49 UTC by Joshua Strobl
Modified: 2024-09-09 14:55 UTC (History)
8 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)
screenshot after clicking "Apply" in "Displays" dialog (725.77 KB, image/png)
2024-08-25 15:31 UTC, Steve
no flags Details
screenshot with F41 Workstation and gtk4-4.15.5-2 (339.42 KB, image/png)
2024-08-26 18:03 UTC, Steve
no flags Details
screenshot with gtk4-4.15.6-1 in GNOME session (880.82 KB, image/png)
2024-08-27 15:39 UTC, Steve
no flags Details


Links
System ID Private Priority Status Summary Last Updated
GNOME Gitlab GNOME gtk issues 6930 0 None closed X11 backend on gl/ngl broken since 523cd0df "glcontext: Add a surface_attached flag" 2024-08-24 17:51:56 UTC
GNOME Gitlab GNOME gtk merge_requests 7633 0 None merged wayland: Create EGL window in make_current() if necessary 2024-08-26 16:24:48 UTC
GNOME Gitlab GNOME gtk merge_requests 7662 0 None merged wayland: Rework how we handle EGLWindows 2024-08-31 15:15:55 UTC
GNOME Gitlab GNOME gtk merge_requests 7663 0 None merged gl: Fix initial EGL context creation on X11 2024-08-31 15:15:55 UTC

Description Joshua Strobl 2024-08-24 17:49:21 UTC
I have bisected an issue resulting in the display change confirmation prompt / dialog presented by Budgie Control Center (fork of GNOME Control Center) failing to render under Magpie v0.x (soft fork of Mutter), to an update of gtk4 on Fedora to 4.15.5.

Not sure if it is related to https://gitlab.gnome.org/GNOME/gtk/-/issues/6930 and other rendering issues (transparent or black windows).

You can confirm this yourself by downloading the following ISOs of Fedora Budgie:

August 12, 2024 - WORKS: https://kojipkgs.fedoraproject.org//packages/Fedora-Budgie-Live/Rawhide/20240812.n.0/images/Fedora-Budgie-Live-x86_64-Rawhide-20240812.n.0.iso

August 13, 2024 - FAILS: https://kojipkgs.fedoraproject.org//packages/Fedora-Budgie-Live/Rawhide/20240813.n.0/images/Fedora-Budgie-Live-x86_64-Rawhide-20240813.n.0.iso

Diff of two ISOs:

23,24c23,24
< adwaita-cursor-theme-46.2-3.fc41.noarch
< adwaita-icon-theme-46.2-3.fc41.noarch
---
> adwaita-cursor-theme-47~beta-1.fc41.noarch
> adwaita-icon-theme-47~beta-1.fc41.noarch
67c67
< bash-5.2.26-4.fc41.x86_64
---
> bash-5.2.32-1.fc41.x86_64
71a72
> biosdevname-0.7.3-17.fc41.x86_64
86c87
< Box2D-2.4.1-15.fc41.x86_64
---
> Box2D-2.4.2-1.fc41.x86_64
92c93
< btrfs-progs-6.9.2-1.fc41.x86_64
---
> btrfs-progs-6.10-1.fc41.x86_64
246c247
< dnf-data-4.21.0-2.fc41.noarch
---
> dnf-data-4.21.0-3.fc41.noarch
480c481
< gtk4-4.15.4-1.fc41.x86_64
---
> gtk4-4.15.5-1.fc41.x86_64
580,586c581,587
< kernel-6.11.0-0.rc2.20240809gitee9a43b7cfe2.27.fc41.x86_64
< kernel-core-6.11.0-0.rc2.20240809gitee9a43b7cfe2.27.fc41.x86_64
< kernel-modules-6.11.0-0.rc2.20240809gitee9a43b7cfe2.27.fc41.x86_64
< kernel-modules-core-6.11.0-0.rc2.20240809gitee9a43b7cfe2.27.fc41.x86_64
< kernel-modules-extra-6.11.0-0.rc2.20240809gitee9a43b7cfe2.27.fc41.x86_64
< kernel-tools-6.11.0-0.rc2.20240809gitee9a43b7cfe2.27.fc41.x86_64
< kernel-tools-libs-6.11.0-0.rc2.20240809gitee9a43b7cfe2.27.fc41.x86_64
---
> kernel-6.11.0-0.rc3.30.fc41.x86_64
> kernel-core-6.11.0-0.rc3.30.fc41.x86_64
> kernel-modules-6.11.0-0.rc3.30.fc41.x86_64
> kernel-modules-core-6.11.0-0.rc3.30.fc41.x86_64
> kernel-modules-extra-6.11.0-0.rc3.30.fc41.x86_64
> kernel-tools-6.11.0-0.rc3.30.fc41.x86_64
> kernel-tools-libs-6.11.0-0.rc3.30.fc41.x86_64
589,590c590,591
< kmod-31-7.fc41.x86_64
< kmod-libs-31-7.fc41.x86_64
---
> kmod-31-8.fc41.x86_64
> kmod-libs-31-8.fc41.x86_64
601c602
< less-661-1.fc41.x86_64
---
> less-661-2.fc41.x86_64
763c764
< libldb-2.9.1-3.fc41.x86_64
---
> libldb-2.9.1-4.fc41.x86_64
1010c1011
< livesys-scripts-0.6.2-1.fc41.noarch
---
> livesys-scripts-0.6.3-1.fc41.noarch
1233c1234
< perl-HTML-Parser-3.82-3.fc41.x86_64
---
> perl-HTML-Parser-3.83-1.fc41.x86_64
1362c1363
< python3-dnf-4.21.0-2.fc41.noarch
---
> python3-dnf-4.21.0-3.fc41.noarch
1392c1393
< python3-perf-6.11.0-0.rc2.20240809gitee9a43b7cfe2.27.fc41.x86_64
---
> python3-perf-6.11.0-0.rc3.30.fc41.x86_64
1435c1436
< readline-8.2-9.fc41.x86_64
---
> readline-8.2-10.fc41.x86_64
1471,1472c1472,1473
< selinux-policy-41.13-1.fc41.noarch
< selinux-policy-targeted-41.13-1.fc41.noarch
---
> selinux-policy-41.14-1.fc41.noarch
> selinux-policy-targeted-41.14-1.fc41.noarch

Reproducible: Always

Steps to Reproduce:
1. Download Fedora Budgie Rawhide (41) 08/12, open Displays and make a change to display confirmation. You will see a prompt for confirmation.
2. Download Fedora Budgie Rawhide 41 (08/13), open Displays and make a change to display confirmation. You will either not see a confirmation visually or it will be a black box.
Actual Results:  
Black popup

Expected Results:  
Not a black popup

Comment 1 packager-dashboard-bot 2024-08-24 17:52:37 UTC
Proposed as a Freeze Exception for 41-beta by Fedora user joshstrobl using the blocker tracking app because:

 There will need to be a freeze exception for any gtk4 release pre-emptively in the event this is fixed upstream. gtk4 4.15.5 breaks Budgie's confirmation prompt for display change confirmation, whereas 4.15.4 does not.

Comment 2 Steve 2024-08-25 15:31:05 UTC
Created attachment 2044826 [details]
screenshot after clicking "Apply" in "Displays" dialog

Reliably reproducible with Fedora-Budgie-Live-x86_64-41-20240824.n.0.iso in a VM.

No rebooting is required. Simply wait for the confirmation dialog to time out. And then run another test.

Comment 3 Steve 2024-08-25 17:16:21 UTC
(In reply to Joshua Strobl from comment #0)
< gtk4-4.15.4-1.fc41.x86_64
> gtk4-4.15.5-1.fc41.x86_64

gtk4-4.15.5 also breaks F41 Workstation with gnome-session-xsession installed and selected at login.

Procedure:

Install and update F41 Workstation in a VM.

Install gnome-session-xsession and reboot.

Select login name.
Click on the gear icon and select "GNOME on Xorg".
Login.
Open a terminal or the settings manager.

With gtk4-4.15.5 no windows are displayed, and there are various display artifacts.

With gtk4-4.15.4 the display appears as expected.

Download gtk4-4.15.4 from here:
https://koji.fedoraproject.org/koji/buildinfo?buildID=2521180

Comment 4 Steve 2024-08-25 18:10:44 UTC
(In reply to Steve from comment #3)
> gtk4-4.15.5 also breaks F41 Workstation with gnome-session-xsession installed and selected at login.

This is, admittedly, contrived, but I can break F41 Workstation Live by installing gnome-session-xsession, configuring a password for liveuser, and logging out.

The rest of the procedure is the same as in Comment 3.

Tested with:

Fedora-Workstation-Live-x86_64-41-20240824.n.0.iso

Comment 5 Steve 2024-08-25 18:25:57 UTC
Joshua: Could you update the bug title to reference 4.15.5 instead of 4.15.4?

Comment 6 Adam Williamson 2024-08-26 16:24:48 UTC
Upstream issue status indicates this was fixed with https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7633 ?

Comment 7 Adam Williamson 2024-08-26 17:43:04 UTC
I've backported that in https://bodhi.fedoraproject.org/updates/FEDORA-2024-08b2a6e32d . If you could test and confirm whether that fixes it, that would be great.

Comment 8 Steve 2024-08-26 18:03:56 UTC
Created attachment 2044889 [details]
screenshot with F41 Workstation and gtk4-4.15.5-2

gtk4-4.15.5-2 doesn't quite fix the rendering problem when running my F41 Workstation test case from Comment 3.

Sometimes the terminal window is rendered correctly and sometimes it is not. As the screenshot shows, the terminal is functional.

$ rpm -q gtk4 gnome-session-xsession 
gtk4-4.15.5-2.fc41.x86_64
gnome-session-xsession-46.0-3.fc41.x86_64

Comment 9 František Zatloukal 2024-08-26 18:08:13 UTC
Discussed during the 2024-08-26 blocker review meeting: [1]

The decision to classify this bug as a AcceptedFreezeException (Beta) was made:

"This is accepted as it breaks significant functionality on non-release-blocking desktops (including Budgie). we will check with GTK folks that the fix should be safe before landing it."

[1] https://meetbot.fedoraproject.org/blocker-review_matrix_fedoraproject-org/2024-08-26/f41-blocker-review.2024-08-26-16.00.log.html

Comment 10 Steve 2024-08-26 18:32:43 UTC
gtk4-4.15.5-2.fc41.x86_64 also breaks the GNOME and GNOME Classic sessions. The terminal window is not rendered correctly, although it is functional.

To be sure there is no interaction, I removed gnome-session-xsession and rebooted.

$ rpm -q gtk4 gnome-session-xsession 
gtk4-4.15.5-2.fc41.x86_64
package gnome-session-xsession is not installed

GNOME:

$ env | sort | egrep 'XDG_CURRENT_DESKTOP|XDG_SESSION_DESKTOP|XDG_SESSION_TYPE'
XDG_CURRENT_DESKTOP=GNOME
XDG_SESSION_DESKTOP=gnome
XDG_SESSION_TYPE=wayland

GNOME Classic:

$ env | sort | egrep 'XDG_CURRENT_DESKTOP|XDG_SESSION_DESKTOP|XDG_SESSION_TYPE'
XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
XDG_SESSION_DESKTOP=gnome-classic
XDG_SESSION_TYPE=wayland

Comment 11 Steve 2024-08-26 18:41:04 UTC
(In reply to Steve from comment #10)
> gtk4-4.15.5-2.fc41.x86_64 also breaks the GNOME and GNOME Classic sessions.

Human testers can't beat the machine: :-)
https://openqa.fedoraproject.org/tests/2820005#step/desktop_terminal/4

Comment 12 Adam Williamson 2024-08-26 19:12:18 UTC
yikes, okay. let's revert that, then.

Comment 13 Steve 2024-08-27 15:39:48 UTC
Created attachment 2044939 [details]
screenshot with gtk4-4.15.6-1 in GNOME session

Moving the pointer around will refresh various dialog components.

Resize pointer is visible at upper right.

Resizing triggers a complete refresh.

Tested with:

$ rpm -q gtk4 gnome-control-center
gtk4-4.15.6-1.fc41.x86_64
gnome-control-center-47~beta-1.fc41.x86_64

$ env | sort | egrep 'XDG_CURRENT_DESKTOP|XDG_SESSION_DESKTOP|XDG_SESSION_TYPE'
XDG_CURRENT_DESKTOP=GNOME
XDG_SESSION_DESKTOP=gnome
XDG_SESSION_TYPE=wayland

Comment 14 Steve 2024-08-27 17:31:14 UTC
Could someone add this to the upstream links?

Initial rendering gone missing in Fedora 41 vm
https://gitlab.gnome.org/GNOME/gtk/-/issues/6964

Aside from demonstrating the bug, this screencast is a thing of beauty: :-)
https://gitlab.gnome.org/-/project/665/uploads/9d9d56c6c421508bf571c88f89776162/Screencast_From_2024-08-27_09-51-21.mp4

Comment 15 Adam Williamson 2024-08-27 17:57:21 UTC
Well, really, that bug is different. That bug is caused by the attempted *fix* for this bug.

Comment 16 Steve 2024-08-27 19:23:04 UTC
I wasn't referring to the mesa bug. Anyway, as far as testing goes, what are we waiting for ATM? gtk4-4.15.7 or a mesa update?

Comment 17 Adam Williamson 2024-08-31 15:15:55 UTC
4.15.7 would be nice, or we can try backporting https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7662 and https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/7663 .

Comment 18 Adam Williamson 2024-09-08 17:09:11 UTC
Ugh, so now we have a 4.16.0 with a bunch of other changes, and git is already bumped to that, so I can't build a 4.15.5 or 4.15.6 with specifically targeted backports, as we should do during freeze. :( We either have to live with this or go to 4.16.0.

Comment 19 Joshua Strobl 2024-09-09 07:02:28 UTC
Is going with the known good 4.15.4 (at least, it resolves the issue I filed) not an option and leave the experimenting of other changes to rawhide, with a backport to 41 when all validation passes? "Living with this" will mean breaking display configuration applying for Budgie users and those that upgrade from 40 to 41 will go from having a functional display configuration applying to it being broken. Not something I would want users to just live with.

Comment 20 Adam Williamson 2024-09-09 07:16:49 UTC
I'm only talking about the beta, here. For final we'll likely go with 4.16.x.

Comment 21 Joshua Strobl 2024-09-09 07:19:36 UTC
Understood. For beta in the case of the Budgie issue, it's acceptable for it to be broken and I can field questions on that should they come up and I see them. Now whether or not the issues Steve raised on issues on the GNOME session are seen as acceptable being broken (hopefully temporarily =) ) during beta is another question.

Comment 22 Adam Williamson 2024-09-09 14:55:40 UTC
Those won't be broken in beta, because we did not push any build that causes those bugs to stable. I've just unpushed the 4.15.6 update so people will also not get it on update.


Note You need to log in before you can comment on or make changes to this bug.